完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 carolxr 于 2015-12-6 11:54 编辑 一、硬件连接 将开发板的UART1_TX(IO2)用于串口打印,UART0与modbus子模块进行通信,modbus子模块暂由上位机“modbus slave”软件模拟,开发板作为modbus主机,定时发送查询寄存器的命令。 ![]() 二、modbus主机(开发板)软件修改: 1、串口功能修改:默认是用UART0做打印输出端口,这里在uart.c文件中的uart_init(...)函数里面修改,使用os_install_putc1(...)函数将打印输出端口重新定位到UART1。 ![]() 2.user_main.c文件修改:主要是增加modbus_master_init()函数。 ![]() 3.modbus master功能实现:在object目录下增加modbus.c和modbus.h文件。在modbus.c文件中实现modbus_master_init()函数,该函数定义了两个定时任务:modbus_master_txTask()和madbus_master_rxTask(),分别用于发送查询命令和接收modbus子模块返回的数据,定时时间分别是50ms和5ms。 ![]() modbus.c文件中还包含modbus_master_txTask()、madbus_master_rxTask、CRC16()等函数的定义。 ![]() ![]() ![]() ![]() 三、实验结果: 如下图中所示,“友善串口调试助手”中接收的信息为modbus主机(开发板)接收到modbus从机返回的数据后,输出的调试打印信息,中间“modbus slave”为modbus子模块模拟软件,地址0~19对应的值如图中所示,右边为modbus通信数据。 ![]() |
|
相关推荐
5 个讨论
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-12 17:00 , Processed in 0.736339 second(s), Total 83, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191