硬汉嵌入式论坛

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

[有问必答] 串口数据交互,发送接收数据,放在一个任务里面好,还是分开放两个任务好?

[复制链接]

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
发表于 2021-2-4 17:02:50 | 显示全部楼层 |阅读模式
串口数据交互,发送接收数据,放在一个任务里面好,还是分开放两个任务好?有没有相关demo?
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-2-5 08:29:32 | 显示全部楼层
论坛有没有带emwin+串口数据交互+操作系统的demo?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-2-5 08:31:03 | 显示全部楼层
一个任务好。
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-2-5 08:44:13 | 显示全部楼层

会不会影响响应时间,硬汉哥,论坛有类似的案例吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-2-6 07:40:03 | 显示全部楼层
ssssssss 发表于 2021-2-5 08:44
会不会影响响应时间,硬汉哥,论坛有类似的案例吗

串口485 Modbus

【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-21)
http://www.armbbs.cn/forum.php?m ... 7330&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-2-6 08:48:13 | 显示全部楼层
eric2013 发表于 2021-2-6 07:40
串口485 Modbus

【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-2 ...

数据解析这里, 超过3.5个字符时间后执行MODH_RxTimeOut()函数。 发送事件标志,设置bit0 */isr_evt_set (BIT_0, ModbusTaskID);,然后uint8_t MODH_Poll(void),里面xResult = os_evt_wait_and (BIT_ALL, TIMEOUT);在等待的过程中任务不切换,死等吗?如果我要等待的时间比较长比如5ms该咋处理呢?       

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-2-6 08:55:40 | 显示全部楼层
ssssssss 发表于 2021-2-6 08:48
数据解析这里, 超过3.5个字符时间后执行MODH_RxTimeOut()函数。 发送事件标志,设置bit0 */isr_evt_set  ...

1、os_evt_wait_and不是死等,如果标志还没有置位会执行任务切换,等待时间TIMEOUT

2、超过5ms说明是下一帧了。
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-2-6 08:59:13 | 显示全部楼层
eric2013 发表于 2021-2-6 08:55
1、os_evt_wait_and不是死等,如果标志还没有置位会执行任务切换,等待时间TIMEOUT

2、超过5ms说明是 ...

实际情况中,有时间一个数据包中间会断开一下,这就要求断帧判断的时间要求比较长5到10ms,那这样该咋处理,我不可能这5~10ms专门去等这个数据回复
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-2-6 09:10:12 | 显示全部楼层
ssssssss 发表于 2021-2-6 08:59
实际情况中,有时间一个数据包中间会断开一下,这就要求断帧判断的时间要求比较长5到10ms,那这样该咋处 ...

需要多长时间间隔设置多少即可。。我这里是标准的Modbus处理,你自己想怎么玩都可以的。

os_evt_wait_and是事件标志组,理解事件标志组的用法即可。。
回复

使用道具 举报

96

主题

297

回帖

585

积分

金牌会员

123

积分
585
 楼主| 发表于 2021-2-6 09:14:13 | 显示全部楼层
eric2013 发表于 2021-2-6 09:10
需要多长时间间隔设置多少即可。。我这里是标准的Modbus处理,你自己想怎么玩都可以的。

os_evt_wait_ ...

硬汉哥,非常抱歉,可能语气没掌握好,其实就是想请教你这个问题咋处理呢?能否给点建议
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-2-6 15:34:46 | 显示全部楼层
ssssssss 发表于 2021-2-6 09:14
硬汉哥,非常抱歉,可能语气没掌握好,其实就是想请教你这个问题咋处理呢?能否给点建议



我9楼说的就可以的。
回复

使用道具 举报

0

主题

124

回帖

124

积分

初级会员

积分
124
发表于 2021-2-7 10:13:05 | 显示全部楼层
不应该用时间来判断帧的开始或结束, 应该用数据解析
回复

使用道具 举报

0

主题

215

回帖

215

积分

高级会员

积分
215
发表于 2021-2-8 10:26:46 | 显示全部楼层
ssssssss 发表于 2021-2-6 08:59
实际情况中,有时间一个数据包中间会断开一下,这就要求断帧判断的时间要求比较长5到10ms,那这样该咋处 ...

用dma的话,中间不会有数据这么长时间断开的情况。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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