在编写USART驱动程序时遇到了一个问题。中断完全没有被处理!不仅没有调用ISR例程,还出现了UsageFault错误... 仔细检查启动文件(由CubeIDE自动生成)后发现,根本没有包含任何USART处理程序的符号。相关位置只有0值并被标记为保留。 附上了startup_stm32f401ccux.s文件中向量表部分的截图:
根据F401xC芯片的参考手册(RM0368),例如在SPI2中断处理程序之后,紧接着应该是USART1和USART2的处理程序,而不是那些"保留"的0值... 我按照参考手册第10.2节中的向量表,在相应位置手动添加了这些中断处理程序后,驱动程序现在可以顺利运行,中断也能正常处理了... 这可能是这些文件自动生成时存在的一个bug?
|