HK32F030MF4P6 写EEPROM 偶尔复位

[复制链接]
 楼主| lpx280666373 发表于 2021-4-13 09:49 | 显示全部楼层 |阅读模式
HK32F030MF4P6 写EEPROM 偶尔复位      配置了看门狗2秒 写多个字节时 在for循环内喂狗了,   操作eeprom前关闭了总中断,写完后再开启总中断,还是有偶发复位情况!   有没有遇到类似的情况?   忘指点一下。谢谢了。
 楼主| lpx280666373 发表于 2021-4-13 09:51 | 显示全部楼层
官方的读写eeprom的 demo例程。

修改的多字节读写
uint8_t WriteEEPROM(uint16_t add,uint8_t *p,uint16_t len)
{
                uint8_t i;
       
                if((add > 448) || (len > 448))
                {
                                return false;
                }
                __set_PRIMASK(1);               //关总中断
                for(i=0;i<len;i++)
                {
                          IWDG_ReloadCounter();
                                EEPROM_WriteByte(add+i,p[i]);
                }
                __set_PRIMASK(0);               //开总中断
                return true;
}

uint8_t ReadEEPROM(uint16_t add,uint8_t *p,uint16_t len)
{
                uint8_t i;
       
                if((add > 448) || (len > 448))
                {
                                return false;
                }
                __set_PRIMASK(1);               //关总中断
                for(i=0;i<len;i++)
                {
                          IWDG_ReloadCounter();
                                EEPROM_ReadByte(add+i,&p[i]);
                }
                __set_PRIMASK(0);               //开总中断
                return true;
}
HSXP063 发表于 2021-4-15 20:33 | 显示全部楼层
看门狗的时间设置长一点
天意无罪 发表于 2021-4-18 14:17 | 显示全部楼层
从代码来看,喂狗时间远不会超过2s才对啊,有可能不是看门狗得原因。
zhengshuai888 发表于 2021-4-18 14:32 | 显示全部楼层
代码没发现有什么毛病,解决没?
lidi911 发表于 2021-4-18 18:42 | 显示全部楼层
先把看门狗关了,看看是不是看门狗的原因,代码看上去没什么问题。
嵌入小菜菜 发表于 2021-4-18 21:34 | 显示全部楼层
这个帖子太好了,太棒了,很棒的一个。
两只袜子 发表于 2021-4-19 09:25 | 显示全部楼层
非常好的帖子啊
 楼主| lpx280666373 发表于 2021-4-20 16:58 | 显示全部楼层
天意无罪 发表于 2021-4-18 14:17
从代码来看,喂狗时间远不会超过2s才对啊,有可能不是看门狗得原因。

应该不是看门狗的原因,     航顺FAE说可能  写超时了!
 楼主| lpx280666373 发表于 2021-4-20 17:01 | 显示全部楼层
HSXP063 发表于 2021-4-15 20:33
看门狗的时间设置长一点

嗯                试一下
liubin1109 发表于 2021-4-20 19:37 | 显示全部楼层
你好,有空吗?帮我看看读保护的问题,谢谢
https://bbs.21ic.com/icview-3126740-1-1.html
 楼主| lpx280666373 发表于 2021-4-21 18:11 | 显示全部楼层
liubin1109 发表于 2021-4-20 19:37
你好,有空吗?帮我看看读保护的问题,谢谢
https://bbs.21ic.com/icview-3126740-1-1.html ...

这个没有用到就没研究。         研究狗 进入进入stopmode 前关闭看门狗。没成功,问航顺的说独立看门狗关不了!
liubin1109 发表于 2021-4-22 20:40 | 显示全部楼层
lpx280666373 发表于 2021-4-21 18:11
这个没有用到就没研究。         研究狗 进入进入stopmode 前关闭看门狗。没成功,问航顺的说独立看门狗 ...

神了,能软件开启看门狗,不能软关闭啊?
 楼主| lpx280666373 发表于 2021-4-24 14:02 | 显示全部楼层
liubin1109 发表于 2021-4-22 20:40
神了,能软件开启看门狗,不能软关闭啊?

看用户手册是可以关闭的、要操作选项字。0xFFFF800 BIT17  置1   没成功。官方也没有demo 。

评论

@annko2005 @maychang 希望帮忙解决一下。 谢谢  发表于 2021-5-7 14:30
 楼主| lpx280666373 发表于 2021-5-7 14:32 | 显示全部楼层
lpx280666373 发表于 2021-4-24 14:02
看用户手册是可以关闭的、要操作选项字。0xFFFF800 BIT17  置1   没成功。官方也没有demo 。 ...

@annko2005 @maychang 希望帮忙解决一下。 谢谢
单片小菜 发表于 2021-5-7 22:34 | 显示全部楼层
感谢楼主的分享,学习了。
嵌入小菜菜 发表于 2021-5-7 23:33 | 显示全部楼层
代码出现问题了吗?持续关注一下。
 楼主| lpx280666373 发表于 2021-5-27 15:42 | 显示全部楼层
结贴吧。   写EEPROM时,串口有溢出中断来,在中断里清一下溢出中断。              
                if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET)
                {   
                          USART_ReceiveData(USART1);
                        USART_ClearFlag(USART1,USART_FLAG_ORE);
                }       
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

113

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部