2025-11-08 06:53:02
正点原子ESP8266要玩Modbus通信得先搞明白这俩东西是干啥的。ESP8266是WiFi芯片板子,Modbus是工业设备之间传数据的协议。想让它当Modbus从机得用AT指令给板子配参数,比如设备地址设成1,波特率调成9600。然后拿手机或电脑串口工具发指令,比如"AT+CModbus=1,1,9600"这种,让板子开始听Modbus命令了。不过得注意ESP8266的串口得先模式改对,用GPIO0和GPIO2拉高电平才能进入AT模式。
为啥得这么操作呢?因为ESP8266本身没自带Modbus协议栈,得靠正点原子自己写的驱动来翻译AT指令和Modbus报文。根据正点原子官网的数据,ESP8266的Modbus库支持RTU和TCP两种模式,但硬件上只能跑RTU,因为TCP需要额外内存。比如设备地址默认是0,得用AT指令显式设置,波特率范围在9600到115200之间。Modbus报文结构是地址+功能码+数据+校验,比如读温度的指令是"01 03 00 00 00 03 C6"这种16位校验码。板子收到指令后,得用GPIO2引脚输出串口数据,波特率不同数据格式也不同,比如9600波特率每帧带9个字节,115200波特率每帧带11个字节。这些参数全得在AT指令里配好,否则连不上工业设备。
本题链接: