OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6109|回复: 5

STM32F030 串口中断 ORE溢出导致死循环

[复制链接]

6

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-1-3
在线时间
41 小时
发表于 2018-6-22 16:12:38 | 显示全部楼层 |阅读模式
2金钱
各位大侠,我用STM32F030,打开串口接收中断后,每次只能接收第一个字节数据,第二个字节就会产生ORE溢出,然后就一直在中断里面循环出不来了,串口波特率9600,接收缓冲区100个字节,就只有一个中断MY_NVIC_Init(1,1,USART1_IRQn,2);   不知道是那个地方引起的ORE 溢出?中断里面也没有太长的操作,请大侠们指教,谢谢!void USART1_IRQHandler(void)
{         u8 res;               
         printf("%X\r\n",USART1->ISR);        //打印出ISR的值       
        if(USART1->ISR&(1<<5))       
        {                                
                res=USART1->RDR; //读取数据,并清除中断

       }
}

第二个字节 ISR就提示ORE 溢出了

第二个字节 ISR就提示ORE 溢出了
222.jpg

最佳答案

查看完整内容[请看2#楼]

找到问题了,还在中断处理函数处理时间较长的问题,不能用printf 来看
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-1-3
在线时间
41 小时
 楼主| 发表于 2018-6-22 16:12:39 | 显示全部楼层
找到问题了,还在中断处理函数处理时间较长的问题,不能用printf 来看
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-6-22 19:09:45 | 显示全部楼层
串口内就别用printf
一分耕耘一分收获。
回复

使用道具 举报

6

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-1-3
在线时间
41 小时
 楼主| 发表于 2018-6-22 22:39:45 | 显示全部楼层
yklstudent 发表于 2018-6-22 19:09
串口内就别用printf

谢谢,只是想串口打印出来看ISR的值,不用printf就是一直在里面循环出不来,各位大侠有碰到这样的情况吗?为什么收到一个字节后就ORE溢出了呢?
回复

使用道具 举报

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
发表于 2018-6-23 08:39:47 | 显示全部楼层
res=USART1->RDR; //读取数据,并清除中断
把这一句放到if外面试试
回复

使用道具 举报

6

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2018-1-3
在线时间
41 小时
 楼主| 发表于 2018-6-23 13:49:15 | 显示全部楼层
kvdong 发表于 2018-6-23 08:39
res=USART1->RDR; //读取数据,并清除中断
把这一句放到if外面试试

谢谢,kvdong ,但结果还是一样溢出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 02:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表