USART输出乱码 & USART配置后没有输出波形

USART输出乱码

情景复现:

通常我们在配置usart的函数中都会定义USART_BaudRate来定义传输的波特率例如9600,
然后再用,usb转TTL ,在电脑上通过串口助手工具,配置9600来来收数据,但是发现收到的数据乱码,而且会跳变,但是把电脑端改成14400就可以接收正常

问题原因:

在stm32f10x.h 文件中会定义使用外部晶振 HSE_Value
如果你硬件电路上的晶振是12Mhz,但是你配置的的8000000
那么就会导致usart 配置好的波特率 ,出现输出异常,如果这个对的话,看看是否统一接地信号

代码位置:

#if !defined  HSE_Value
 #ifdef STM32F10X_CL   
  //#define HSE_Value    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#define HSE_Value    ((uint32_t)12000000)
 #else 
  #define HSE_Value   ((uint32_t)12000000)// ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
 #endif /* STM32F10X_CL */
#endif /* HSE_Value */

USART没有波形输出

如果usart函数都配置了,但是示波器检测不到数据输出的波形,那么原因肯定是配置的疏漏
可以检测以下串口初始化的条件,再全局函数查看下,时不时有地方被注释了倒置没有生效
经常忽视有:


初始化函数

USART_Init(USARTx, &USART_InitStructure);
使能函数

USART_Cmd(USARTx, ENABLE);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值