串口轮循发送数据的临界区保护位置问题

发表在 内核学习营2019-4-21 20:25 [复制链接] 5 342

本帖最后由 yhb1206 于 2019-4-21 20:29 编辑
: P( N$ B1 @) d
( X  p* _3 Z# _6 @. N最近移植了msh到nano,我的串口接了485芯片,我发现发送数据时要添加临界区保护机制,数据才能正常,不至于乱码。
8 J* W+ B6 v5 A: n" L: t但是这有个问题,就是临界区保护放置位置:- W1 v: b. m( v' W) P
(1)放在uart.c的putc函数中?
$ \; ~( p+ \& d8 |7 }(2)还是放在serial中的_serial_poll_tx中的发送循环之前?这两个方法都可以实现数据的保护。第一个是一个字节为保护区域,而第二个方法可以说是一帧数据或多个字节为保护区。) ]1 j, Z0 ^, Q3 ~" m8 d* ^1 W
这哪个好些?
3 m" O1 H$ L/ Q! I, B' K
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-4-22 09:42:27 | 显示全部楼层
你的串口驱动有问题吧,可能会出现数据乱掉的情况但是不会乱码,不需要临界区保护。
使用道具 举报 回复
发表于 2019-4-22 11:34:15 | 显示全部楼层
请问楼主,你的msh与485是用的同一个串口吗?
使用道具 举报 回复
发表于 2019-4-22 18:06:03 来自手机 | 显示全部楼层
我表述有问题,应该不是乱码,不加临界保护就是串口接受的数据没显示出来,不像乱码。后来加上临界保护,就正常了。不加不行呀
使用道具 举报 回复
发表于 2019-4-22 18:07:08 来自手机 | 显示全部楼层
就是用485串口作为msh的输入和输出呀。
使用道具 举报 回复
发表于 2019-4-23 09:57:15 | 显示全部楼层
yhb1206 发表于 2019-4-22 18:07
6 m- r  v- p, y就是用485串口作为msh的输入和输出呀。

2 `' j5 i! S& w请问msh和485收发能同时工作吗?还是只能同时工作在二者其中一种,需要切换?
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

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