打印
[STM32F0]

【转】关于STM32 无法进入串口4和串口5中断的解决方案

[复制链接]
792|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
焚琴煮鹤|  楼主 | 2016-12-4 00:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  STM32F103部分系列的单片机总共有5个串口,分别是USART1,USART2,USART3和UART4,UART5.  一般情况下,USART1,USART2,USART3只要配置正确都是可以正常发送数据和接收数据的(中断或查询接收都可以)。但在使用UART4,UART5的时候,可能会遇到能正常发送数据,但不能进入中断的问题,那也就意味着不能通过中断来接收数据。如果在配置 的时候,把UART4,UART5的中断关闭,然后通过查询的方式去接收数据,通过调用
          if(USART_GetFlagStatus(UART4, USART_FLAG_RXNE) != RESET)是可以接收数据的。

      下面给出无法进入中断的解决方法。
      原因:在启动代码中,比如startup_stm32f10x_md.s,
                里面是没有关于UART4,UART5的初始化操作的。

      解决:将启动文件选为startup_stm32f10x_hd.s(或者其他)
      该文件中是有关于UART4,UART5的初始化操作的。或者在startup_stm32f10x_md.s文件中增加                               UART4,UART5的初始化操作,但经过实验发现,仅仅增 加UART4,UART5的初始化是不够的。连带其他中断的初始化也同样要复制过来。其实就是把startup_stm32f10x_md.s变的跟 startup_stm32f10x_hd.s一样。

     产生上述问题的根本原因:
             在创建工程的时候,选择启动文件时,选择的启动文件选择错误。
            STM32F103系列单片机中FLASH容量的对应关系如下:
                  16~32K         LD
                  64K~128K     MD                                                                           
             256~512K     HD

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

63

主题

106

帖子

3

粉丝