stm32eeprom 的中断对 eeprom读写有影响吗

“  stm32eepromL系列单片机内部提供了EEPROM存储区域但实质上,其FLASH也是EEPROM类型只不过有一块区域被开放出来专门用作EEPROM操作而已。stm32eepromL的EEPROM使用寿命设计为100000次擦写以上容量为2K-4K,这对于一般设备嘚参数存储来说是非常理想的但从EEPROM使用方式看,其不适用于被反复修改的数据存储使用一般作为配置参数,其修改次数往往是比较少量的

    stm32eepromL的EEPROM和FLASH是统一编址,操作共用同一个读写电路所以在EEPROM读写的时候stm32eepromL核对于FLASH的一切访问和操作都将暂停,只有当EEPROM的操作完成后才继续執行后续代码,在这期间只有EEPROM的读写电路工作CPU处于挂起状态。”

高级技术员, 积分 543, 距离下一级还需 457 积分

高级技术员, 积分 543, 距离下一级还需 457 积汾

0

高级技术员, 积分 543, 距离下一级还需 457 积分

高级技术员, 积分 543, 距离下一级还需 457 积分

0
stm32eeprom开机时在eeprom读取存储的内容,然後用串口发送给DGUS屏的变量地址进行显示数据但是第一个数据显示是0,而且之前发送接收数据时串口都不存在问题通过测试eeprom读数据是成功的,但是为什么DGUS屏显示的第一个数据会失败呢

第一点,有可能是变量地址写错了第二点,有可能是串口传输的问题第三点,有可能是dgus屏接收显示数据太慢经过咨询DGUS屏的客服,客服的回答是:“会有延时等完全启动后再发”。但是在客服回复我之前我已经找到嘚我的问题所在,并且已经解决了我的问题

其实问题就是串口的发送问题,虽然在此之前串口通信并没有问题最终还是不太严谨的问題。

   这里判断的是TC位要等到数据到移位寄存器中完成后,再发送第二帧数据但是,由于SR寄存器的复位值是0x00c0即一开始TC位就是置1的,所鉯当第一次数据写入DR寄存器中的时候头一个while没有起作用当第二个数据来了就把第一个数据覆盖了,这就是串口的第一个数据丢失了的原洇!解决的办法就是直接判断TXE位把0X40改为0X80即可。    当数据从发送缓冲器传送到移位寄存器时设置TXE标志(发送缓冲器空),它表示内部的数據缓冲器可以接收下一个数据了详情请查阅stm32eeprom参考手册。

我要回帖

更多关于 stm32eeprom 的文章

 

随机推荐