STM8系列写内部eeprom速度超慢,我之前测过不记得是1ms一个字节还是6ms一个字节,之前我没留意,现在一个项目,在写eeprom时丢串口数据,我才开始头疼起来,这样的速度确实是stm8的一大败笔!!!
STM8S写时间最大需要6.6ms。
EEPROM都这德性吧?楼主,您见过us数量级写时间的EEPROM?
LZ的应用倒是可以用缓冲的方法来解决,一次写128byte,也只需6.6ms,平均才52us 1字节,可以应付相当高的波特率的接收数据流(至少115200bps)。
反正STM8S SRAM多,是不?、、、
人家是写一个字节和写一个Page速度是一样的,这是IC设计电路决定的
内部和外部EEPROM的写速度都比较慢
正像楼上几位大虾所说,这就是EEPROM的速度,不管是内置还是外置的,你不妨采用2、3楼的方法,使用快速页写要快得多。
楼主应该在开始设计之前就把手册上的参数研究清楚:
估计楼主没有注意到写入EEPROM的时候(6ms之内)不能对EEPROM进行操作(读或写EERPOM),否则的话CPU会进入STALL状态,不执行任何语句,不响应任何中断。所以应该在EEPROM写入时进行查询FLASH_IAPSR,直到EEPROM写操作完成再进行下一步写操作!
8楼,请教,你是指HVOFF位吗?EOP位好像写完没反应的!
是EOP位,这一位烧写完成后由硬件置1,读取FLASH_IAPSR之后清为0。
不要用调试环境去读寄存器,在程序中去读取并判断。
*((u8*)(0x4000)) = 0xAA;
while(!(FLASH_IAPSR & 0x04));
/* 下一步操作 */
10楼,你调试程序的时候要烧写FLASH和EEPROM的,这几位当然为1,
对于硬件寄存器的值要确定的话在程序里利用变量去读,这样才是准确的,调试环境中看到的未必是真实的。