STM32-FreeModbus 移植

Written By Tomy Stark.
E-mail: ro7enkranz@qq.com

Note: 转载请注明本文出处链接、作者

一、工具准备清单

硬件

  • 一块带有 RS485 通信接口的 STM32 开发板
  • USB 转 485 通讯转换器(推荐带 FT232 芯片的转换器,更加稳定, CH340 稳定性欠佳。)

软件

  • FreeMODBUS(Modbus 协议栈)
  • Modbus Poll(Modbus RTU 上位机调试软件)
  • MODBUS调试助手(来自安富莱论坛,简单易用,可替代 Modbus Poll 部分功能)
  • STM32CubeMX(ST 官方的 MCU 配置工具)
  • TrueStudio(这里我以 TrueStudio 这个 IDE 为例,其它 IDE 例如 Keil MDK 也可)

以上部分软件也可从我的微云网盘下载:https://share.weiyun.com/5ec0Utd

printf 函数重定向到UART串口输出

快捷注释所有 printf() 调用语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#if 1
#define PRINTF printf
#else
#define PRINTF(...)
#endif

/* 或者分模块注释printf,方便调试,例如ADC和TIM1模块内
* 进行调试信息打印时,可分别调用各自的printf宏定义别名,
* 这么做可以在程序调试期间方便对某一模块的调试信息功能启用和关闭
*/
#if 1
#define ADC_PRINTF printf
#else
#define ADC_PRINTF(...)
#endif

#if 1
#define TIM1_PRINTF printf
#else
#define TIM1_PRINTF(...)
#endif