硬汉嵌入式论坛

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

[有问必答] 串口数据收发任务规划。

[复制链接]

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
发表于 2021-11-16 15:58:39 | 显示全部楼层 |阅读模式
本帖最后由 ssssssss 于 2021-11-16 16:10 编辑

一共四路串口数据,每一路串口都需要发送,并接受解析数据。我用freerots的规划是这样的:

任务一:每20ms执行一次,四路串口的发送函数都在这个任务里面。
任务二:串口1数据解析处理函数
任务三:串口2数据解析处理函数
任务四:串口3数据解析处理函数
任务五:串口4数据解析处理函数



我的规划是这样的,有没有更好的规划呢?





回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2021-11-16 16:21:43 | 显示全部楼层
先按这个办法规划编程,测试一下。串口发送数据多少字节?波特率多大?解析错误,重新发送,会不会影响严重问题?只有串口发送和接收吗?开八个任务。接收发送各开一个任务。呵呵。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2021-11-16 16:23:17 | 显示全部楼层
发送一个任务,接收一个任务如何
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-11-16 16:52:36 | 显示全部楼层
eric2013 发表于 2021-11-16 16:23
发送一个任务,接收一个任务如何

所有串口的接收都放一个任务里面。
通过事件标志组来判断是哪个串口接收到了数据,然后执行对应串口的数据解析代码。
是这样吗?
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-11-16 16:54:39 | 显示全部楼层
hqgboy 发表于 2021-11-16 16:21
先按这个办法规划编程,测试一下。串口发送数据多少字节?波特率多大?解析错误,重新发送,会不会影响严重 ...

所有串口发送放一个任务,所有串口接收放一个任务,这样比较合理?
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2021-11-17 10:46:19 | 显示全部楼层
ssssssss 发表于 2021-11-16 16:54
所有串口发送放一个任务,所有串口接收放一个任务,这样比较合理?

四个处理等级一样可以这样。如果某一个要优先处理,可以单独拿出来。
看你串口这块要求了。。
回复

使用道具 举报

0

主题

215

回帖

215

积分

高级会员

积分
215
发表于 2021-11-17 14:24:48 | 显示全部楼层
接收放在中断里面处理,不需要任务,每个端口的数据解析和发送放在一个任务里面,任务里面解析数据为主,发送和接收能用DMA就用DMA。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2021-11-17 17:43:32 | 显示全部楼层
ssssssss 发表于 2021-11-16 16:52
所有串口的接收都放一个任务里面。
通过事件标志组来判断是哪个串口接收到了数据,然后执行对应串口的数 ...

可以的。中断里面只是接收数据,解析在任务里面实现。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 01:10 , Processed in 0.169320 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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