51单片机rs485通讯问题,高分求助!

我想用51单片机连接MAX485芯片,然后通过单片机发送数据到下位机,比如我需要单片机发送一串数据5501320000000189到下位机,那么这个程序应该如何写?下位机... 我想用51单片机连接MAX485芯片,然后通过单片机发送数据到下位机,比如我需要单片机发送一串数据 55 01 32 00 00 00 01 89 到下位机,那么这个程序应该如何写?

下位机通讯协议是:
波特率 9600,8 个数据位,一个停止位,无校验位。
数据帧:
每个数据帧包含 8 个字节。分别是:数据头(一字节),地址(一字节),功能码(一字节), 数据(四字节),校验和(一字节)。
上位机发送(8 个字节):
数据头: 一字节 固定为 0x55 目标地址: 一字节 如果目标地址为 1,则发送 1,目标地址是多少就发送多少。用来 功能码: 一字节 数据内容: 四字节,先发送第一字节,然后第二,三,四个字节 校验: 一字节,将前面的所有数据相加,取后八位得到。
展开
 我来答
lycdl
高粉答主

2018-04-16 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4892万
展开全部
你这类似modbus协议,发送8个字节,这程序好写的。先声明一个数组,8个元素,依次对应一帧数据的8个字节,按协议先写成每个元素的初始数。
发送时,地址字节重写入需要发送的地址,功能码,数据码需要变化就重写入数组,然后循环计算前面字节的和,作为校验和写入最后的元素内。
好啦,要发送的数据帧准备完,就可以循环发送这个数组了,就是发送一帧数据了。
下位机接收数据也采用类似方法,只是先接收,后判断处理一帧数据。
更多追问追答
追问
您好,能发个示例代码吗,刚接触这个不太明白
追答
现在的电脑里没有现成的程序了,等有时间给你写一段。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式