中国移动推出的物联网开发板使用了常见的 STM32F1 开发板 和 ESP8266,所以理论上我们可以使用自己的 STM32 和 ESP模块,通过下载开发板例程来实现一些示例的工程,但是你可能会发现串口乱码现象。
这个问题是由于我下载的开发板资料外部晶振是12M,而我们常用的外部晶振是8M,导致时序问题。如果你使用逻辑分析仪,串口波特率选择自适应,也是可以读取到串口的值的。
所以,如果不换外部晶振,可以通过修改代码来实现:
以下代码片段在stm32f10x.h
中,可以查找HSE_VALUE宏定义来定位:
- 源程序代码如下:
#if !defined HSE_VALUE
#ifdef STM32F10X_CL
#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#else
#define HSE_VALUE ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */
可以看到源程序定义 HES_VELUE(外部晶振)的值为12M,此处需要修改为所用开发板的晶振,一般是8M。
修改后为:
#if !defined HSE_VALUE
#ifdef STM32F10X_CL
#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#else
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */
编译下载即可:
本文下载了基础例程助攻的 串口打印 例程,结果显示已经正常。
附件是 开发板的工程代码,其提供了很多简明的demo,可供用户参考:
链接:OneNET-Mini板-V1.x
提取码:1234