调了两天UART4,现象是查询方式收发都正常。但是无法使用中断方式,仿真检查了UART4的寄存器配置完全正常,NVIC寄存器配置也正常。接收数据后NVIC的IABR也相应置位。更换3.5.0库的startup_stm32f10x_hd.s也不行实在没有办法。网上查可以REMAP USART3串口使用。于是使用USART3、和库自带的startup_stm32f10x_hd.s编译下载,现象和UART4一样无法进入中断。更换回中断生成的 STM32F10x.s 后成功进入USART3中断。由此判断库自带的startup_stm32f10x_hd.s存在问题。对比STM32F10x.s 和startup_stm32f10x_hd.s文件发现处理XXX_Handler以外还有很多不同的地方。于是把不同的地方改成与STM32F10x.s一样后,再配置UART4就可以进入中断了。
|