硬汉嵌入式论坛

 找回密码
 立即注册
查看: 464|回复: 7
收起左侧

[μCOS-III] 串口接收的方式

[复制链接]

10

主题

21

回帖

51

积分

初级会员

积分
51
发表于 2023-8-3 10:46:33 | 显示全部楼层 |阅读模式
方式一:串口接收中断将收到的数据一个字节一个字节的放到队列里,然后在另一个任务里对队列里的数据进行验证解析





方式二:在串口中断中先进行验证(协议头、协议尾、校验),如果验证通过再将完整的数据包放到队列中,另一个任务直接对数据做解析。




想问一下这俩个方式 那一种方式会的好一点呢

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2023-8-3 11:03:12 | 显示全部楼层
1、方式1的话,需要频繁调用uCOS-III的Post方式。
2、方式2的话,接收多个数据验证后,仅需调用一次Post,也有缺点,缺点是中断里面占用的时间长不长。
回复

使用道具 举报

10

主题

21

回帖

51

积分

初级会员

积分
51
 楼主| 发表于 2023-8-3 11:11:23 | 显示全部楼层
eric2013 发表于 2023-8-3 11:03
1、方式1的话,需要频繁调用uCOS-III的Post方式。
2、方式2的话,接收多个数据验证后,仅需调用一次Post, ...

方式2中断代码截图

方式2

方式2
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2023-8-3 11:17:09 | 显示全部楼层
yx0124 发表于 2023-8-3 11:11
方式2中断代码截图

这种的完全可以在中断里面做。
回复

使用道具 举报

10

主题

21

回帖

51

积分

初级会员

积分
51
 楼主| 发表于 2023-8-3 11:26:00 | 显示全部楼层
eric2013 发表于 2023-8-3 11:17
这种的完全可以在中断里面做。

好的  方式1的那种方式我用来做接收不定长度并且没有协议格式的数据了。如果数据频繁了会有什么隐患吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2023-8-3 14:43:57 | 显示全部楼层
yx0124 发表于 2023-8-3 11:26
好的  方式1的那种方式我用来做接收不定长度并且没有协议格式的数据了。如果数据频繁了会有什么隐患吗

也没问题的,缓存稍大点,处理及时些,防止很快就满了。
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2023-8-3 16:57:41 | 显示全部楼层
eric2013 发表于 2023-8-3 14:43
也没问题的,缓存稍大点,处理及时些,防止很快就满了。

有道理,我今天遇到这个问题了,只能把缓存改大一点
回复

使用道具 举报

19

主题

371

回帖

428

积分

高级会员

积分
428
发表于 2023-8-5 23:04:56 | 显示全部楼层
用IDLE+DMA中断方式最好
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 11:25 , Processed in 0.360429 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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