当前位置: 代码迷 >> 驱动开发 >> STM32的STM32F10xFWLib的STM32F10x.s不支持UART4,UART5中断,如何修改呢
  详细解决方案

STM32的STM32F10xFWLib的STM32F10x.s不支持UART4,UART5中断,如何修改呢

热度:49   发布时间:2016-04-28 10:49:09.0
STM32的STM32F10xFWLib的STM32F10x.s不支持UART4,UART5中断,怎么修改呢
刚开始研究STM32,手头有块STM32F103RC的板子,至少需要支持RTX操作系统,还要支持全部5个串口。
先以Keil\ARM\Examples\ST\STM32F10xFWLib\Examples例子为模板,在stm32f10x_vector.s和stm32f10x_it.c架构下,5个串口的驱动已经调试通过了。
再以Keil414\ARM\Boards\ST\STM32F10X_EVAL\RTX_Blinky例子为模板,启动了OS与任务,一切顺利!
在整合RTX多任务与中断,尤其是UART4、UART5时,问题出现了,有人能帮助解答一下吗:
1.需要支持RTX操作系统,是否只能用STM32F10x.s启动?(用stm32f10x_vector.s是不行的,任务启动不起来)。
2.用STM32F10x.s启动后,增加了USART1的驱动,任务切换和USART1收发正常了。但是STM32F10x.s中断向量表并没有定义UART5(为什么不定义,偷懒了?)void UART5_IRQHandler(void)代码都不编译进去!
手动修改了STM32F10x.s,增加了缺失的中断向量,再与stm32f10x_it.c一起编译,编译通过了,void UART5_IRQHandler(void)代码也编译进去了,可以下断点了,但是void USART1_IRQHandler(void)的中断能进,void UART5_IRQHandler(void)的中断不能进。
请高手指点迷津!

------解决方案--------------------
UART5是不是已经用作他用了 可以讨论下呢
------解决方案--------------------
查查datasheet
 先确定一下, UART4,5是不是有复用的功能

 通常情况下,用1或2个串口,3个都很少了,至少我没有遇到过 呵呵

 如果,4,5有复用功能

 则要查查 相关GPIO口 在初始化过程中,是否有复用

 如果有,则要修改了