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

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

本帖最后由 yhb1206 于 2019-4-21 20:29 编辑
) u$ ~" F; o; |6 M
* X) e" g) M/ l4 ^4 A最近移植了msh到nano,我的串口接了485芯片,我发现发送数据时要添加临界区保护机制,数据才能正常,不至于乱码。: U: \% P5 |8 w: i2 ^
但是这有个问题,就是临界区保护放置位置:" i: L' D9 p6 [4 ]; w
(1)放在uart.c的putc函数中?
* u2 N" l( W0 H+ o(2)还是放在serial中的_serial_poll_tx中的发送循环之前?这两个方法都可以实现数据的保护。第一个是一个字节为保护区域,而第二个方法可以说是一帧数据或多个字节为保护区。
. h. K4 V9 M, ]: x0 s这哪个好些?
  a$ B3 `9 |" K8 ?
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 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:073 h3 M/ v5 N! K" l
就是用485串口作为msh的输入和输出呀。

; ?, G# W! {. F! u+ G请问msh和485收发能同时工作吗?还是只能同时工作在二者其中一种,需要切换?
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

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