本帖最后由 紫阳真人 于 2019-11-27 17:35 编辑
单片机:STM32F103CBT6
库:HAL
现象:系统(多设备、多CAN节点,问题板只是其中一部分)上电时,问题板无响应;从新单独给问题板通电,正常。单独给问题板通断电实验未复现。
分析:怀疑系统EMC造成单片机独立看门狗没有正常启动
按照cubemx生成的顺序,把看门狗初始化函数放到以下函数的后面:
SystemClock_Config(); MX_GPIO_Init();
MX_USART1_UART_Init();
MX_DMA_Init();
MX_ADC1_Init();
MX_CAN_Init();
MX_TIM2_Init();
而这些函数中大多初始化失败就会调用死循环:
void _Error_Handler(char *file, int line)
{
while(1){}
}
如果初始化失败就会进入死循环,那么看门狗就无法启动。所以把看门狗初始化放到最前面可以解决这个问题。
但是,如果不是进入死循环,而是PC根本没有到看门狗初始化函数就停了,是否只能通过外加硬件看门狗来解决?
问题:是否有必要增加外部硬件看门狗?
|