新手入门
- 积分
- 8
- 金钱
- 8
- 注册时间
- 2021-6-24
- 在线时间
- 2 小时
|

楼主 |
发表于 2021-11-6 13:35:31
|
显示全部楼层
本帖最后由 wwwmmm 于 2021-11-6 13:40 编辑
目前IWDG进入hardfault的问题是解决了,但是这个根源感觉还是总线的问题,没有找到具体问题
解决方法如下:
HAL库的喂狗函数其实是调用了这个宏,应该是在这边进入的hardfault: __HAL_IWDG_RELOAD_COUNTER(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_RELOAD)将喂狗函数改成
void IWDG_Feed(void)
{
//HAL_Delay(100);
IWDG->KR=IWDG_KEY_RELOAD;
//HAL_IWDG_Refresh(&hiwdg);
//__HAL_IWDG_RELOAD_COUNTER(&hiwdg);//reload
}
直接朝寄存器写值,虽然搞不懂调用这个函数跟直接写值差距在哪里,嘿~,但是用HAL库的函数就给你来一着hardfault,怕了怕了,函数党投降!
真让人头疼,有谁知道根本原因欢迎指教!!!
|
|