- 打卡等级:偶尔看看I
- 打卡总天数:16
- 最近打卡:2025-04-30 08:18:51
中级会员
- 积分
- 333
|
你好版主,如题问题如下,
while(1)
{
if (TIME_10ms == 1)
{
TIME_10ms = 0;
//在10MS执行一次的框架内,
u8 xdata EEPROM_BUF_U1[1024]={0}; //两个扇区的EEPROM数据,U1参数
u8 xdata EEPROM_BUF_U2[1024]={0}; //两个扇区的EEPROM数据,U2参数
u8 xdata EEPROM_BUF_U3[1024]={0}; //两个扇区的EEPROM数据,U3参数
u8 xdata EEPROM_BUF_U4[1024]={0}; //两个扇区的EEPROM数据,U4参数
新建变量用来保存零时数据
EEPROM_read_n(0,EEPROM_BUF_P,1024); //读取掉电数据,将地址0开始的1024个字节的数据读出来保存到EEPROM_BUF数组
EEPROM_read_n(1024,EEPROM_BUF_U1,1024); //读取掉电数据,将地址1024开始的1024个字节的数据读出来保存到EEPROM_BUF_U1数组
EEPROM_read_n(2048,EEPROM_BUF_U2,1024); //读取掉电数据,将地址2048开始的1024个字节的数据读出来保存到EEPROM_BUF_U2数组
EEPROM_read_n(3072,EEPROM_BUF_U3,1024); //读取掉电数据,将地址3072开始的1024个字节的数据读出来保存到EEPROM_BUF_U3数组
EEPROM_read_n(4096,EEPROM_BUF_U4,1024); //读取掉电数据,将地址4096开始的1024个字节的数据读出来保存到EEPROM_BUF_U4数组
while循环之前读取数据,//如果不加读取这一行,那么数码管就可以显示0000,加了这4行就不能显示数据,直接黑屏,数码管使用TM1650控制,以下是数码管显示函数,
Seg_Show_Bit1(0,EEPROM_BUF_U1[PARM_Num_U]); //数码管第一位显示数组U1对应的参数
Seg_Show_Bit1(1,EEPROM_BUF_U2[PARM_Num_U]); //数码管第二位显示数组U2对应的参数
Seg_Show_Bit1(2,EEPROM_BUF_U3[PARM_Num_U]); //数码管第三位显示数组U3对应的参数
Seg_Show_Bit1(3,EEPROM_BUF_U4[PARM_Num_U]); //数码管第四位显示数组U4对应的参数
以下是零时数组变量写入EPROM
if( KEY_ReadState(Btn_Set)==KEY_LONGPRESS ) //如果长按Btn_Set,则进入P参数二级分类值的设定
{
EEPROM_SectorErase(1024); //擦除从1024开始的512字节的一个扇区
EEPROM_SectorErase(1536); //擦除从1536开始的512字节的一个扇区
EEPROM_SectorErase(2048); //擦除从2048开始的512字节的一个扇区
EEPROM_SectorErase(2560); //擦除从2056开始的512字节的一个扇区
EEPROM_SectorErase(3072); //擦除从3072开始的512字节的一个扇区
EEPROM_SectorErase(3584); //擦除从3584开始的512字节的一个扇区
EEPROM_SectorErase(4096); //擦除从4096开始的512字节的一个扇区
EEPROM_SectorErase(4608); //擦除从4608开始的512字节的一个扇区
EEPROM_write_n(1024,EEPROM_BUF_U1,1024); //重新写入掉电数据,将4096个数据重新写入地址0,方便下一次读取
EEPROM_write_n(2048,EEPROM_BUF_U2,1024); //重新写入掉电数据,将4096个数据重新写入地址0,方便下一次读取
EEPROM_write_n(3072,EEPROM_BUF_U3,1024); //重新写入掉电数据,将4096个数据重新写入地址0,方便下一次读取
EEPROM_write_n(4096,EEPROM_BUF_U4,1024); //重新写入掉电数据,将4096个数据重新写入地址0,方便下一次读取
PARM_Flow = 23;
}
以上是写入EPROM保存区,
现在遇到的问题是,添加读取函数,数码管直接黑屏,不显示任何数据,不添加读取函数,数码管即可以显示0000,
请问这个是怎么回事?是10MS时间不够用吗?硬件是STC32G12K128
|
|