[STM32F0] 250k波特率,一直卡在中断里

[复制链接]
2577|9
 楼主| frankie17 发表于 2016-2-28 09:37 | 显示全部楼层 |阅读模式
STM32F030,250k波特率串口通讯,一直卡在中断里,测试程序中断只读接收的数据。串口时钟为48MHz

        USART_InitStructure.USART_BaudRate                                 = 250000;
        USART_InitStructure.USART_WordLength                         = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits                                 = USART_StopBits_2;
        USART_InitStructure.USART_Parity                                 = USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl         = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode                                         = USART_Mode_Rx;                                       
        USART_Init(USART1, &USART_InitStructure);

        void USART1_IRQHandler(void)
      {
          INT8U data;
          data = USART_ReceiveData(USART1);
     }

求教啊。。。。。。。
mmuuss586 发表于 2016-2-28 14:51 | 显示全部楼层
中断程序加些判断;
判断是什么中断,比如是串口接收中断,溢出中断,根据响应的中断清除标志位;
戈卫东 发表于 2016-2-28 14:59 | 显示全部楼层
RXNE还有个附加的信号ORE必须处理
gwnpeter 发表于 2016-2-29 07:13 | 显示全部楼层
2楼真相,dmx512的解码????
wahe2008 发表于 2016-2-29 08:47 | 显示全部楼层
清除中断标志
hufengweixx 发表于 2016-2-29 13:17 | 显示全部楼层
在应用中断时步骤:
1、触发中断
2、进入中断处理程序,处理需要做的进程
3、清除中断标志,使得中断处理后,恢复初始状态
hufengweixx 发表于 2016-2-29 13:18 | 显示全部楼层
按您这现象应该是前两步都跑过了,第三步应该没有处理,也就是中断标志没有及时清除
 楼主| frankie17 发表于 2016-3-1 19:26 | 显示全部楼层
测了一下接收数据的波形,是串口发送的问题,串口设备最高频率115.2K;而250K波特率时,波形宽度就不对了,一直是接收帧错误中断, 这样就造成了一直卡在中断。
dongmaowan 发表于 2016-4-29 17:24 | 显示全部楼层
可以使用USB转串口的 比如CH341 可用使用相关指令设置到1M或2M的波特率都没问题
309030 发表于 2016-4-29 21:32 | 显示全部楼层
250k波特率串口通讯

没明白,波特率怎么是250K呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部