STM32 使用 中移 OneNET 开发板例程 串口打印乱码问题与解决

中国移动推出的物联网开发板使用了常见的 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 */

编译下载即可:
STM32 使用 中移 OneNET 开发板例程 串口打印乱码问题与解决_第1张图片
本文下载了基础例程助攻的 串口打印 例程,结果显示已经正常。

附件是 开发板的工程代码,其提供了很多简明的demo,可供用户参考:
STM32 使用 中移 OneNET 开发板例程 串口打印乱码问题与解决_第2张图片

链接:OneNET-Mini板-V1.x
提取码:1234

你可能感兴趣的:(问题与解决)