时间:2021-07-01 10:21:17 帮助过:20人阅读
熟悉Modbus RTU的各位猿友应该对Modbus TCP多多少少有些了解,我们在公众号里也多次介绍过,移植Modbus TCP,首先我们要移植一个TCP协议栈将Mobdus数据在上面传输,而Lwip是著名的开源TCP/IP网络协议栈,可以移植到微控制器上,可以裸机,也可以支持操作系统,已经被移植到很多的产品上,所以我们就选择lwip,,然后按照Modbus TCP标准添加Modbus协议栈就可以了,今天我们先来看看lwip如何移植到STM32H743xxx上,我们使用在freeRTOS下移植lwip,利用ST的固件库。
首先下载H7系列的包,并解压
可以看到ST的SDK里面对lwip有很多的例程,有带RTOS的有不带的,我们以LwIP_UDPTCP_Echo_Server_Netconn_RTOS 为例来移植,这个工程是基于freeRTOS的,打开这个工程
确定编译无误后,就可以动手移植了,首先要根据硬件原理图修改初始化部分,包括时钟,管脚,如果你的板子跟这个参考板很接近的话,那么移植起来很简单,看到原理图跟网络相关的硬件接口,可以对应到MCU侧。修改相应管脚初始化
除了修改管脚初始化外,网络的中断优先级根据项目需要可做修改,除过修改代码的同时将注释也一并修改,养成良好的习惯,当然这些硬件上初始化的更改也可以通过ST的配置工具CubeMX直接更改重新生成工程然后编译。
根据自己的实际更改IP地址,可以支持DHCP,或者静态IP地址。
我这里使用电脑和板子直接连接,使用默认IP地址,然后将电脑和板子的IP地址设到同一个网段。编译无误后,下载到板子,将电脑和板子连接起来,或者连入路由器,我这里采用直联,并将电脑设为192.168.0.15,打开网络调试助手,或者其他支持TCP的工具都可以
选择 TCP 客户端,输入板子IP地址 192.168.0.10 端口号7, 注意我们在下节移植modbus的时候,端口号要更改为Mdobus专用的。这里测试可以不用改。输入 1 2 3 4 5 6 7 8 9发送,可以看到板子收到后发回来的收据。
好了,下次我们会基于这个工程添加Modbus TCP协议栈。
移植Modbus TCP一
标签:地址 参考 xxx 选择 养成 修改 sdk 自己 工具