OpenEdv-开源电子网

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

串口发送与接收一帧数据如何保证数据帧完整?

[复制链接]

1

主题

1

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-7-17
在线时间
10 小时
发表于 2021-2-18 09:49:13 | 显示全部楼层 |阅读模式
求助原子哥,目前用了usart1和usart2两个串口,usart1使用了定时器中断,每30ms触发一次中断并通过usart1向上位机发送一帧数据,usart2每1s发生一次接收中断并将接收到的数据通过usart1向上位机发送一帧数据,定时器和usart2的中断优先级(包括抢占式和子优先级)怎么设置都不行,要么是定时器中断时向上位机发送的数据帧破坏了usart2接收中断时向上位机发送数据帧的完整性,要么反过来破坏完整性(说的太绕了哈),后来查找网上说usart2中断可以增加USART_ITConfig(USART3, USART_IT_IDLE, ENABLE)这样的类似代码来保证接收数据为一帧数据,但是我看了代码,这种方法还是没有屏蔽接收一个字节的中断触发,只不过利用IDLE来判断接收一帧数据是否接收完毕,接收数据帧中间还是有可能被高优先级的定时器中断给中断掉的。有没有其他好的方法?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-28 19:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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