打印
[STM32F0]

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

[复制链接]
2308|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的解码????

使用特权

评论回复
5
wahe2008| | 2016-2-29 08:47 | 只看该作者
清除中断标志

使用特权

评论回复
6
hufengweixx| | 2016-2-29 13:17 | 只看该作者
在应用中断时步骤:
1、触发中断
2、进入中断处理程序,处理需要做的进程
3、清除中断标志,使得中断处理后,恢复初始状态

使用特权

评论回复
7
hufengweixx| | 2016-2-29 13:18 | 只看该作者
按您这现象应该是前两步都跑过了,第三步应该没有处理,也就是中断标志没有及时清除

使用特权

评论回复
8
frankie17|  楼主 | 2016-3-1 19:26 | 只看该作者
测了一下接收数据的波形,是串口发送的问题,串口设备最高频率115.2K;而250K波特率时,波形宽度就不对了,一直是接收帧错误中断, 这样就造成了一直卡在中断。

使用特权

评论回复
9
dongmaowan| | 2016-4-29 17:24 | 只看该作者
可以使用USB转串口的 比如CH341 可用使用相关指令设置到1M或2M的波特率都没问题

使用特权

评论回复
10
309030| | 2016-4-29 21:32 | 只看该作者
250k波特率串口通讯

没明白,波特率怎么是250K呢

使用特权

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

本版积分规则

2

主题

12

帖子

0

粉丝