Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DMA
串口
485两主一从通信接收数据
发布于 2023-12-27 11:32:29 浏览:363
订阅该版
整个系统逻辑如下: 使用485通信两主一从,两个控制屏控制一个PLC,主屏发送数据给PLC以后,PLC会回数据。副屏在接收到主屏和PLC的数据以后进行校验,校验成功后再发送数据给PLC。(主屏每100ms发送数据给PLC,PLC在0~20ms会立即回数据给主屏。副屏每50ms判断一次是否接收到数据) 副屏程序如下: 副屏使用DMA模式接收串口信息。 ``` /* 串口接收数据回调函数 */ static rt_err_t uart_input(rt_device_t dev, rt_size_t size) { rt_sem_release(&rx_sem_485); IPC_flag=0; return RT_EOK; } ``` 主机每100毫秒,发送数据给PLC。副屏会每50毫秒读一次是否接收到串口中断中发送的信号量,如果接收到信号量后,会将接收到的数据,包括主屏发给PLC,和PLC回给主屏的信息进行校验。 ``` /*副屏读数据函数*/ if(rt_sem_take(&rx_sem_485, RT_WAITING_NO) == RT_EOK) { recv_sz = rt_device_read(seria_485,-1,Data_Receive,80);//读取数据存到Data_Receive中 //判断读取到数据的长度是否正确,主屏发给PLC的数据,加上PLC发给主屏的数据长度是0x38. if(0x38 == recv_sz) { ``` 发现读的数据可能有错误。大概PLC每发3次会出现两次。会出现断帧,或者数据错误的现象。
查看更多
3
个回答
默认排序
按发布时间排序
CrazyH
2023-12-27
这家伙很懒,什么也没写!
modbus直接用软件包,就别自己处理了
红枫
认证专家
2023-12-27
这家伙很懒,什么也没写!
两主会有总线冲突问题,须做好时分复用才行。
swet123
2023-12-27
ztlchina@foxmail.com
你这个要做好时间分配。 也许你副屏发送数据的时候,主屏也在发送,他俩就冲突了。 你要解决的是,副屏发送数据的时候,主屏或者PLC肯定不发数据。
撰写答案
登录
注册新账号
关注者
0
被浏览
363
关于作者
ipianox
这家伙不懒,但不想写!
提问
9
回答
3
被采纳
0
关注TA
发私信
相关问题
1
串口DMA发送数据时,数据被覆盖
2
关于串口DMA模式下rt_device_close问题
3
利用stm32f427实现usb转串口,电脑端什么也没有识别到
4
finsh 控制台 适配 RS 485请大神指点????
5
uart_sample.c 中,读串口设备时偏移量pos要设置为-1而不是0?
6
【结贴】at_device软件包中对串口接收数据缺少判断导致数据接收异常
7
串口无法接受数据,但可以发送
8
串口如何有效的清除掉接收缓冲,而不必一个一个的去读取
9
串口接收使用方式问题
10
雅特力FINSH问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
mcxn947 dht11温湿度采集
2
【24嵌入式设计大赛】基于RT-Thread星火1号的AI广告终端设计
3
基于stm32f407 芯片创建 rt-thread工程——使用Arduino兼容层RTduino
4
星火1号:CAN通信初步
5
【24嵌入式设计大赛】基于RT-Thread火星一号智能终端采集系统
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
文件系统
DMA
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
I2C_IIC
WIZnet_W5500
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
中断
flashDB
socket
Debug
GD32
编译报错
msh
keil_MDK
at_device
MicroPython
rt_mq_消息队列_msg_queue
ulog
C++_cpp
本月问答贡献
出出啊
1513
个答案
341
次被采纳
小小李sunny
1438
个答案
289
次被采纳
张世争
775
个答案
167
次被采纳
crystal266
546
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部