hhh402 发表于 2024-7-3 09:52:36

STC8H单片机触发EEPROM时还需要关中断吗 | 要关总中断

STC8H单片机触发EEPROM时还需要关中断吗?下面程序:EA = 0;是必须的吗?

      EA = 0;    //禁止中断, 避免触发命令无效
      IAP_TRIG = 0x5A; //先送5AH,再送A5H到IAP触发寄存器,每次都需要如此
      IAP_TRIG = 0xA5; //送完A5H后,IAP命令立即被触发启动//CPU等待IAP完成后,才会继续执行程序。

神农鼎 发表于 2024-7-4 20:02:57

要关总中断 !
如你送触发命令流【5A, A5】, 5A送后,A5还没送,
其他中断来了,其他的程序里面,
又整到送 5A, 这第2个触发命令不是有效的命令 A5
===是非法命令流,那要重新送触发命令流【5A, A5】
===触发命令状态机判前面是非法命令流 !
===后续还得重新开始触发命令流【5A, A5】

后续的程序还得按合法顺序 送 【5A,A5】
关键您程序肯定没考虑这,所以这有软件漏洞
要关总中断

我也是刚回忆起还有这一出大戏的

Kingsley 发表于 2024-7-3 10:33:48

我用的8G的,用了挺久不关中断的,暂时没有发生啥问题。

lezjin 发表于 2024-7-3 10:43:06

我前两天也是刚看到这个,我个人认为关 一下比较好,写这两个是不能打断的

电子DIY小家 发表于 2024-7-3 10:49:10

不是必须的,但是建议加上。
E2写入的时候最好别被打断。
其次E2建议上电读取一次,
断电的时候整体写入一次,
不建议在运行的时候频繁读写E2




QQ624353765 发表于 2024-7-3 10:56:37

重来没关过,一切正常

晓飛飛 发表于 2024-7-3 11:22:12

楼上说从来没关一切正常,那是自己的测试环境远没有客户现场的环境复杂
如果只是玩或者开发对可靠性完全没有要求的消费类产品,那可关可不关,
如果对可靠性有要求,那强烈建议按照官方文档中的说明来,该关的一定要关,不要心存侥幸。

hhh402 发表于 2024-7-3 11:41:30

本帖最后由 hhh402 于 2024-7-3 11:54 编辑

谢谢大家{:4_174:}
STC手册以前版本提到过需要关中断再触发,但是最新STC8H手册中已经没有提到要关中断再触发,给的例程也没有关中断,是不是硬件改进了不需要关中断了。

xxxevery 发表于 2024-7-3 12:46:12

严谨来说还是得关,中断打断写入EEPROM造成写入失败是存在的,你没碰到不代表没有,好的程序就要避免各种错误发生

千年老姚 发表于 2024-7-3 14:31:14

严谨来讲,一定是需要关掉的。
但是做嵌入式的,您按照现场要求来,可能会更好一点。
我个人是习惯关掉的。

晓飛飛 发表于 2024-7-4 18:12:15

hhh402 发表于 2024-7-3 11:41
谢谢大家
STC手册以前版本提到过需要关中断再触发,但是最新STC8H手册中已经没有提到要关中断再触发,给的 ...

强烈建议,中断该关还得关,
另外,最新的手册中,部分EEPROM操作的例程中不涉及到中断问题的就不会强调,请看STC8H系列的最新手册第1000~1009页,在读写EEPROM时还是会先禁止中断的。
页: [1] 2
查看完整版本: STC8H单片机触发EEPROM时还需要关中断吗 | 要关总中断