http://www.stmcu.org.cn/module/forum/thread-599873-1-1.html
注: 本程序适合新手入门,第一个程序写了如何实现串口的收发多个字节程序 第二个程序写了如何利用主程序循环来监控数据接收 第三个程序写了如何利用定时器来监控数据是否发送和接收完毕 第四个程序写了RS485如何通信通信 第五个程序写了modbus协议。。。。。。。。。。 通过上位机发送一串字节后并在显示屏上显示所发送的数据,大概就是这个功能 芯片是STM32F103VET的,编译器是IAR6.1的。需要的就带走吧! |
-
799.08 KB, 下载次数: 1500, 下载积分: ST金币 -1
-
826.95 KB, 下载次数: 1220, 下载积分: ST金币 -1
-
812.14 KB, 下载次数: 1135, 下载积分: ST金币 -1
-
816.13 KB, 下载次数: 1567, 下载积分: ST金币 -1
-
对需要的朋友很有用 modbus在工业现场的底层通信 应用非常广泛. 传个资料 ,版权归网络所有 <ignore_js_op>-
这是班的原理图 <ignore_js_op>-
3.23 MB, 下载次数: 6040, 下载积分: ST金币 -1
-
147.16 KB, 下载次数: 835, 下载积分: ST金币 -1
http://www.51hei.com/bbs/dpj-137780-1.html
Modbus 一个工业上常用的通讯协议、一种通讯约定。Modbus协议包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现。modbus协议简单解析如下:
1、主机对从机写数据操作
如果单片机接收到一个报文那么就对报文进行解析执行相应的处理,如上面报文:
01 06 00 01 00 17 98 04
从机地址 功能号 数据地址 数据 CRC校验
假如本机地址是 1 ,那么单片机接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则结果是:
HoldDataReg[1] = 0x0017;
MODBUS主机就完成了一次对从机数据的写操作,实现了通讯。
2、主机对从机读数据操作
主机进行读HoldDataReg[1] 操作,则报文是:
01 03 00 01 00 01 D5 CA
从机地址 功能号 数据地址 读取数据个数 CRC校验
那么单片机接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则结果是:返回信息给主机,返回的信息也是有格式的:
返回内容:
01 03 02 0017 F8 4A
从机地址 功能号 数据字节个数 两个字节数据 CRC校验
MODBUS主机就完成了一次对从机数据的读操作,实现了通讯。
上传的程序是根据手把手教你51单片机的例程修改而来,能实现读/写操作(03,06码),成功通过modbus调试精灵测试,读写通讯正常!
由于刚接触modbus通讯协议,之前一直出现通讯超时的问题,找了网上很多资料,都不得其解,所以把程序拿出来和大家分享。希望和大家相互学习、共同进步!
<ignore_js_op>http://news.eeworld.com.cn/mcu/article_2017100934976.html
在STM32上移植FreeModbus RTU的一点经验总结