在调试STM32F407和EC20 4G模块时发现改用了串口6后,启动一段时间就会死机,并且通过调试器发现都跳转到了启动文件的
B 。
ENDP
ALIGN
经查阅,这是因为中断函数没有配置好,经过仔细检查,原来是中断函数名称的问题,因为该芯片的串口1、2、3、6是USART,4、5是UART,所以串口6的中断函数名称应该是void USART6_IRQHandler(void),而我之前是从串口5复制过来的,修改时候只把5改为了6,并没有加个S,即改成了void UART6_IRQHandler(void),这个函数名跟启动文件里的不匹配,系统当然就找不到串口6的中断函数了。所以每当4G模块启动后会主动输出信息时,系统因为串口6 的接收就死机了。
复制需谨慎!!!
在调试STM32F407和EC20 4G模块时发现改用了串口6后,启动一段时间就会死机,并且通过调试器发现都跳转到了启动文件的
B 。
ENDP
ALIGN
经查阅,这是因为中断函数没有配置好,经过仔细检查,原来是中断函数名称的问题,因为该芯片的串口1、2、3、6是USART,4、5是UART,所以串口6的中断函数名称应该是void USART6_IRQHandler(void),而我之前是从串口5复制过来的,修改时候只把5改为了6,并没有加个S,即改成了void UART6_IRQHandler(void),这个函数名跟启动文件里的不匹配,系统当然就找不到串口6的中断函数了。所以每当4G模块启动后会主动输出信息时,系统因为串口6 的接收就死机了。
复制需谨慎!!!
举报