用STM32F103ZGT6 的 UART1 接收数据时触发中断处理程序。 将 STM32CubeIDE 生成的代码,稍微修修改,在状态寄存器 USART1.SR 中设置“Byte Received”标志 RXNE (设置为 1),中断通过控制USART1 位 RXNEIE 启用,在 NVIC 中启用了中断。第 5 位ISER1对应于 USART1 全局中断的中断 37。但是中断处理程序 USART1_IRQHandler() 没能出发中断。 仿真中 USART1_IRQHandler() 处理程序的地址是 0x80007f8。但是中断矢量表中(矢量位于 0x0000_00D4)中的数据是 0x80007f9而不是 0x80007f8,地址相差 1。 在 STM32CubeIDE 中使用 API 调用 HAL_UART_Receive_IT()接收字符。 差 1 是什么问题?可能是 int 处理程序未触发的原因吗?
|