【E815】STM32F407 MODBUS RTU源程序

2021-09-06 09:13:12      索炜达电子      773     

项目编号:E815

文件大小:3M

源码说明:带中文注释

开发环境:C编译器

简要概述:

MODBUS RTU,是现在工控行业非常重要的一个现场应用协议。相信做工控现场的师兄都知道。我也因需要,做了个从站,方便大家使用。

经自己3个星期的努力,终于把MODBUS RTU在STM32F407控制器上成功实现了,每句话都加注了详细的说明。


有需要的小伙伴可以选用

截图如下

主机配置如下

1 modbus poll主机不断给从机1发送03读寄存器命令:

Tx:066-01 03 00 00 00 0A C5 CD

【E815】STM32F407 MODBUS RTU源程序

Modbus RTU 03码解析

【E815】STM32F407 MODBUS RTU源程序

MODBUS应答

【E815】STM32F407 MODBUS RTU源程序

【E815】STM32F407 MODBUS RTU源程序

示例-03码.主机Modbus poll软件命令如下

主站发出/命令:读地址006B(十进制107)开始的0003(3)个寄存器地址。

从站返回/应答:03码,返回06(十进制6)个字节寄存器,022B(555),0000(0),0064(100)

【E815】STM32F407 MODBUS RTU源程序

STM32F407从机回答如下

Tx:066-01 03 00 00 00 0A C5 CD

命令解析:读1号(01)从站寄存器(03),从00(00 00)开始,共10(00 0A)个寄存器。

Rx:067-01 03 14 05 4B 03 EA 08 FF 20 0C 05 4B 03 EA 08 FF 2D 00 2D 00 2D 00 EC 08

应答解析:01:地址;03:功能码;14:字节数量10个(2进制14=10进制20)

05 4B :2进制054B=10进制1355;  03 EA :1002;  08 FF:2303;  20 0C:8204; 05 4B:1355;

03 EA :1002;  08 FF :2303;  2D 00:115200; 2D 00 :115200;2D 00:115200;

EC 08 :校验码-5112

目录│文件列表:

 ├ MODBUS协议报文解析

 │  │ commdata.txt

 │  │ MODBUS协议(功能码及报文解析).pdf

 │  └ Modbus通讯说明.txt

 ├ Modbus通讯

 │  └ Modbus通讯

 │     │ keilkilll.bat

 │     │ readme.txt

 │     ├ CORE

 │     │  │ core_cm4.h

 │     │  │ core_cm4_simd.h

 │     │  │ core_cmFunc.h

 │     │  │ core_cmInstr.h

 │     │  └ startup_stm32f40_41xxx.s

 │     ├ FWLIB

 │     │  ├ inc

 │     │  │  │ misc.h

 │     │  │  │ stm32f4xx_adc.h

 │     │  │  │ stm32f4xx_can.h

 │     │  │  │ stm32f4xx_crc.h

 │     │  │  │ stm32f4xx_cryp.h

 │     │  │  │ stm32f4xx_dac.h

 │     │  │  │ stm32f4xx_dbgmcu.h

 │     │  │  │ stm32f4xx_dcmi.h

 │     │  │  │ stm32f4xx_dma.h

 │     │  │  │ stm32f4xx_dma2d.h

 │     │  │  │ stm32f4xx_exti.h

 │     │  │  │ stm32f4xx_flash.h

 │     │  │  │ stm32f4xx_flash_ramfunc.h

 │     │  │  │ stm32f4xx_fmc.h

 │     │  │  │ stm32f4xx_fsmc.h

 │     │  │  │ stm32f4xx_gpio.h

 │     │  │  │ stm32f4xx_hash.h

 │     │  │  │ stm32f4xx_i2c.h

 │     │  │  │ stm32f4xx_iwdg.h

 │     │  │  │ stm32f4xx_ltdc.h

 │     │  │  │ stm32f4xx_pwr.h

 │     │  │  │ stm32f4xx_rcc.h

 │     │  │  │ stm32f4xx_rng.h

 │     │  │  │ stm32f4xx_rtc.h

 │     │  │  │ stm32f4xx_sai.h

 │     │  │  │ stm32f4xx_sdio.h

 │     │  │  │ stm32f4xx_spi.h

 │     │  │  │ stm32f4xx_syscfg.h

 │     │  │  │ stm32f4xx_tim.h

 │     │  │  │ stm32f4xx_usart.h

 │     │  │  └ stm32f4xx_wwdg.h

 │     │  └ src

 │     │     │ misc.c

 │     │     │ stm32f4xx_adc.c

 │     │     │ stm32f4xx_can.c

 │     │     │ stm32f4xx_crc.c

 │     │     │ stm32f4xx_cryp.c

 │     │     │ stm32f4xx_cryp_aes.c

 │     │     │ stm32f4xx_cryp_des.c

 │     │     │ stm32f4xx_cryp_tdes.c

 │     │     │ stm32f4xx_dac.c

 │     │     │ stm32f4xx_dbgmcu.c

 │     │     │ stm32f4xx_dcmi.c

 │     │     │ stm32f4xx_dma.c

 │     │     │ stm32f4xx_dma2d.c

 │     │     │ stm32f4xx_exti.c

 │     │     │ stm32f4xx_flash.c

 │     │     │ stm32f4xx_flash_ramfunc.c

 │     │     │ stm32f4xx_fmc.c

 │     │     │ stm32f4xx_fsmc.c

 │     │     │ stm32f4xx_gpio.c

 │     │     │ stm32f4xx_hash.c

 │     │     │ stm32f4xx_hash_md5.c

 │     │     │ stm32f4xx_hash_sha1.c

 │     │     │ stm32f4xx_i2c.c

 │     │     │ stm32f4xx_iwdg.c

 │     │     │ stm32f4xx_ltdc.c

 │     │     │ stm32f4xx_pwr.c

 │     │     │ stm32f4xx_rcc.c

 │     │     │ stm32f4xx_rng.c

 │     │     │ stm32f4xx_rtc.c

 │     │     │ stm32f4xx_sai.c

 │     │     │ stm32f4xx_sdio.c

 │     │     │ stm32f4xx_spi.c

 │     │     │ stm32f4xx_syscfg.c

 │     │     │ stm32f4xx_tim.c

 │     │     │ stm32f4xx_usart.c

 │     │     └ stm32f4xx_wwdg.c

 │     ├ HARDWARE

 │     │  ├ KEY

 │     │  │  │ key.c

 │     │  │  └ key.h

 │     │  ├ LED

 │     │  │  │ led.c

 │     │  │  └ led.h

 │     │  └ modbus

 │     │     │ modbus.c

 │     │     └ modbus.h

 │     ├ OBJ

 │     │  └ Template.hex

 │     ├ README

 │     │  └ README.txt

 │     ├ SYSTEM

 │     │  ├ delay

 │     │  │  │ delay.c

 │     │  │  └ delay.h

 │     │  ├ sys

 │     │  │  │ sys.c

 │     │  │  └ sys.h

 │     │  └ usart

 │     │     │ usart.c

 │     │     └ usart.h

 │     └ USER

 │        │ JLinkSettings.ini

 │        │ main.c

 │        │ modbus.uvguix.Administrator

 │        │ modbus.uvoptx

 │        │ modbus.uvprojx

 │        │ stm32f4xx.h

 │        │ stm32f4xx_conf.h

 │        │ stm32f4xx_it.c

 │        │ stm32f4xx_it.h

 │        │ system_stm32f4xx.c

 │        │ system_stm32f4xx.h

 │        │ Template.uvguix.Administrator

 │        └ Template.uvoptx

 ├ Modbus通讯改1图片

 │  └ Modbus通讯改1图片

 │     │ 06码下写正确.png

 │     │ 微信截图_20200509093959.png

 │     │ 微信截图_20200509094219.png

 │     │ 微信截图_20200509100030.png

 │     │ 微信截图_20200509100043.png

 │     │ 通信1.png

 │     │ 通信2.png

 │     │ 通信说明.docx

 │     │ 配置.png

 │     │ 配置2.png

 │     │ 默认通信1.txt

 │     └ 默认通信2.png

 └ Modbus通讯改2

    └ Modbus通讯改2

       │ keilkilll.bat

       │ readme.txt

       ├ CORE

       │  │ core_cm4.h

       │  │ core_cm4_simd.h

       │  │ core_cmFunc.h

       │  │ core_cmInstr.h

       │  └ startup_stm32f40_41xxx.s

       ├ FWLIB

       │  ├ inc

       │  │  │ misc.h

       │  │  │ stm32f4xx_adc.h

       │  │  │ stm32f4xx_can.h

       │  │  │ stm32f4xx_crc.h

       │  │  │ stm32f4xx_cryp.h

       │  │  │ stm32f4xx_dac.h

       │  │  │ stm32f4xx_dbgmcu.h

       │  │  │ stm32f4xx_dcmi.h

       │  │  │ stm32f4xx_dma.h

       │  │  │ stm32f4xx_dma2d.h

       │  │  │ stm32f4xx_exti.h

       │  │  │ stm32f4xx_flash.h

       │  │  │ stm32f4xx_flash_ramfunc.h

       │  │  │ stm32f4xx_fmc.h

       │  │  │ stm32f4xx_fsmc.h

       │  │  │ stm32f4xx_gpio.h

       │  │  │ stm32f4xx_hash.h

       │  │  │ stm32f4xx_i2c.h

       │  │  │ stm32f4xx_iwdg.h

       │  │  │ stm32f4xx_ltdc.h

       │  │  │ stm32f4xx_pwr.h

       │  │  │ stm32f4xx_rcc.h

       │  │  │ stm32f4xx_rng.h

       │  │  │ stm32f4xx_rtc.h

       │  │  │ stm32f4xx_sai.h

       │  │  │ stm32f4xx_sdio.h

       │  │  │ stm32f4xx_spi.h

       │  │  │ stm32f4xx_syscfg.h

       │  │  │ stm32f4xx_tim.h

       │  │  │ stm32f4xx_usart.h

       │  │  └ stm32f4xx_wwdg.h

       │  └ src

       │     │ misc.c

       │     │ stm32f4xx_adc.c

       │     │ stm32f4xx_can.c

       │     │ stm32f4xx_crc.c

       │     │ stm32f4xx_cryp.c

       │     │ stm32f4xx_cryp_aes.c

       │     │ stm32f4xx_cryp_des.c

       │     │ stm32f4xx_cryp_tdes.c

       │     │ stm32f4xx_dac.c

       │     │ stm32f4xx_dbgmcu.c

       │     │ stm32f4xx_dcmi.c

       │     │ stm32f4xx_dma.c

       │     │ stm32f4xx_dma2d.c

       │     │ stm32f4xx_exti.c

       │     │ stm32f4xx_flash.c

       │     │ stm32f4xx_flash_ramfunc.c

       │     │ stm32f4xx_fmc.c

       │     │ stm32f4xx_fsmc.c

       │     │ stm32f4xx_gpio.c

       │     │ stm32f4xx_hash.c

       │     │ stm32f4xx_hash_md5.c

       │     │ stm32f4xx_hash_sha1.c

       │     │ stm32f4xx_i2c.c

       │     │ stm32f4xx_iwdg.c

       │     │ stm32f4xx_ltdc.c

       │     │ stm32f4xx_pwr.c

       │     │ stm32f4xx_rcc.c

       │     │ stm32f4xx_rng.c

       │     │ stm32f4xx_rtc.c

       │     │ stm32f4xx_sai.c

       │     │ stm32f4xx_sdio.c

       │     │ stm32f4xx_spi.c

       │     │ stm32f4xx_syscfg.c

       │     │ stm32f4xx_tim.c

       │     │ stm32f4xx_usart.c

       │     └ stm32f4xx_wwdg.c

       ├ HARDWARE

       │  ├ KEY

       │  │  │ key.c

       │  │  └ key.h

       │  ├ LED

       │  │  │ led.c

       │  │  └ led.h

       │  ├ modbus

       │  │  │ modbus.c

       │  │  └ modbus.h

       │  └ OLED

       │     │ bmp.h

       │     │ oled.c

       │     │ oled.h

       │     └ oledfont.h

       ├ OBJ

       │  └ Template.hex

       ├ README

       │  └ README.txt

       ├ SYSTEM

       │  ├ delay

       │  │  │ delay.c

       │  │  └ delay.h

       │  ├ sys

       │  │  │ sys.c

       │  │  └ sys.h

       │  └ usart

       │     │ usart.c

       │     └ usart.h

       └ USER

          │ JLinkSettings.ini

          │ main.c

          │ modbus.uvguix.Administrator

          │ modbus.uvoptx

          │ modbus.uvprojx

          │ stm32f4xx.h

          │ stm32f4xx_conf.h

          │ stm32f4xx_it.c

          │ stm32f4xx_it.h

          │ system_stm32f4xx.c

          │ system_stm32f4xx.h

          │ Template.uvguix.Administrator

          │ Template.uvoptx

          └ DebugConfig

             └ Modbus_STM32F407ZG.dbgconf

TAGMODBUS
  • 9 次
  • 1 分