赞
踩
一、RS485基础通信例程实现的功能描述 开发板通过UART1接口 + SP485EEN芯片实现和电脑端串口调试助手的通信。并实现如下两个收发范例功能: 如果PC端通过485向开发板发送5字节数据,且5字节数据为06 07 08 09 0A,则黄色LED1闪烁一次 开发板每隔1秒通过485向PC端发送5字节数据,01 02 03 04 05 二、本实验教学目的 掌握基于ShineBlink的: UART通信(占用RX1,TX1) GPIO控制485转换芯片的方向(D2引脚控制485芯片的方向,高电平) -GPIO控制LED1亮灭(D8连接黄色LED1) 三、本实验涉及的模块 485接口在开发板上的位置如下: 注意,为了使用485接口,必须将P7和P8跳线帽短接才能让TX1引脚、RX1引脚和485转换芯片连接。 四、完整源代码 以下代码实现了如下功能: 如果PC端通过485向开发板发送5字节数据,且5字节数据为06 07 08 09 0A,则黄色LED1闪烁一次 开发板每隔1秒通过485向PC端发送5字节数据,01 02 03 04 05
五、实验现象 将开发板的485接口通过485转USB工具和PC端连接以后,将上面的代码复制到开发板的虚拟TF卡中并开始运行,之后每秒钟可以在PC端串口调试助手收到开发板发来的5字节数据(01 02 03 04 05),并且当调试助手向开发板下发(06 07 08 09 0a)以后,开发板的黄色LED灯会闪烁以下,如下图:
注意:软件需要勾选“HEX显示”和"HEX发送"。
设备和上位机(Modbus主机)通信的实现
简介:
下文介绍了如何用ShineBlink作为设备端(Modbus从机)来和上位机(Modbus主机)来通信,并在ShineBlink设备端实现了0x03功能码(读取多个保持寄存器)和0x05功能码(写单个线圈)的程序代码。
一、实现环境
设备作为Modbus从机通过RS485总线和上位机通信,我们在电脑上运行知名的Modbus Poll调试软件作为上位机来模拟Modbus主机,Modbus Poll软件可以到其官网上下载。
二、设备介绍
设备作为Modbus网络中的其中一个节点有如下特性:串口属性:19200、N、8、1设备地址:21(0x15)设备支持的Modbus功能码:0x05 写单个线圈0x03 读取多个保持寄存器功能介绍:0x05,上位机通过向设备发送0x05功能码,对线圈地址为0x0000的线圈写入值0xFF00时,设备开始运行,对线圈地址为0x0000的线圈写入值0x0000时,设备停止运行。0x03,上位机通过向设备发送0x03功能码,读取保持寄存器起始地址为0x0000的9个保持寄存器(每个保持寄存器值为16bit无符号数据),每个寄存器对应的数据如下:
三、Modbus通信实现代码实例 以下代码不仅实现了03和05功能码,并实现了将各种异常情况回复给Modbus主机。
四、Modbus Poll 上位机实验流程 (1)配置0x03读取保持寄存器功能(Setup) (2)建立Modbus串行通信连接(Connectiong) (3)建立连接后的数据通信 1. 上位机每秒钟自动下发0x03指令读取设备的起始地址为0x0000的9个保持寄存器的值 通信数据日志:
上面设备回复的23个字节数据举例说明:
例如:15 03 12
00 06
00 00
00 01
00 00
00 16
00 16
00 00
00 00
00 00 D5 16
数据结尾的CRC算法采用Modbus Crc16
2. 上位机下发开机命令(功能码0x05,向线圈地址为0x0000处写单个线圈值0xFF00)
通信数据日志:
3. 上位机下发停机命令(功能码0x05, 向线圈地址为0x0000处写单个线圈值0x0000)
上位机发送: 15 05 00 00 00 00 CE DE 设备应回复: 15 05 00 00 00 00 CE DE
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。