精华内容
下载资源
问答
  • STM32踩坑:STM32串口发送乱码问题

    千次阅读 2020-10-16 09:36:05
    STM32串口发送乱码问题 小编是一个嵌入式初学者,才学没多久,将近两个月的样子,在学习过程中遇到了一些问题,在这里给大家分享一下解决方案。 今天要分享的问题是 STM32 串口发送字符串,但是在调试助手上面接收到...

    STM32串口发送乱码问题

    小编是一个嵌入式初学者,才学没多久,将近两个月的样子,在学习过程中遇到了一些问题,在这里给大家分享一下解决方案。

    今天要分享的问题是 STM32 串口发送字符串,但是在调试助手上面接收到的字符却是一串乱码,看着让人头疼。
    这是乱码的图片
    这是乱码的图片

    然后问了公司办公室的大佬,也在网上查了一下资料,总结了一下,原因大致有两点:
    1) 开发板上外部时钟的晶振与代码中的外部时钟的晶振不一致(这是我写的串口实验发生乱码的原因)
    在这里插入图片描述

    2) 串口调试助手接收数据的波特率与串口初始化时的波特率不一致(这种乱码情况我没有遇见过)

    如果是第一种情况,那么找到 stm32Fxxx.h (F1 系列的是 stm32F1xx.h,F3 系列的是 stm32F3xx.h,F4 系列的是 stm32F4xx.h,F7 系列的是 stm32F7xx.h,没用过 F3 系列的,不过文件应该是对应的)文件,找到以下相对应的代码进行修改即可。

    //以下代码是对 HSE 外部高速时钟的晶振的一个设置
    //修改前
    #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
    
    //修改后
    #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
    

    这里我是将参数 25000000 改成了 8000000,具体的还是要看开发板上晶振模块的数值。

    如果是第二种情况,那么就需要检查串口调试助手接收数据的波特率与串口初始化时的波特率(一般在串口初始化函数中,如果使用的自带的函数初始化,那么需要找到对应的文件进行修改)是否一致了,下面是我自己的检查结果截图,仅供参考。
    波特率检查结果
    下面是修改成功后,调试助手收到的结果截图。
    最终结果
    以上均为小编自己的总结,若存在侵权,请联系小编。

    展开全文
  • STM32串口通信乱码解决方法

    千次阅读 2019-07-04 11:06:25
    STM32使用USART做串口通信实验的时候,串口调试助手能够接收到数据但出现乱码现象,显示开发板发来的数据总是问号或者不规则字体,主要原因可能是串口波特率设置不对或者系统时钟设置出问题。 波特率设置 波特率设置...

    STM32串口通信乱码解决方法

    STM32使用USART做串口通信实验的时候,串口调试助手能够接收到数据但出现乱码现象,显示开发板发来的数据总是问号或者不规则字体,主要原因可能是串口波特率设置不对或者系统时钟设置出问题。

    波特率设置

    波特率设置须与串口接收调试助手设置一致。尝试降低波特率为9600,依然出现乱码。可能就是系统时钟设置出问题。

    系统时钟设置

    本人核心板使用的晶振为8M,而系统初始化程序使用的是25M。打开stm32f10x.h文件,将晶振修改为核心板对应的大小。将25000000修改为80000000。在这里插入图片描述
    或者直接将这一段注释掉,直接设置晶振为核心板的晶振大小。
    在这里插入图片描述

    链接: https://blog.csdn.net/aizaiyueye/article/details/79049816.

    展开全文
  • STM32串口通信乱码详细处理方法

    万次阅读 多人点赞 2018-01-13 10:26:24
    STM32串口通信以及温度采集搞定,其中主要遇到STM32系列单片机时钟树的问题,串口通信遇到串口调试助手能够接收到数据但出现乱码现象,开始一直以为是串口配置和程序代码问题,因为是第一次上电在线调试STM32板子,...

    STM32串口通信以及温度采集搞定,其中主要遇到STM32系列单片机时钟树的问题,串口通信遇到串口调试助手能够接收到数据但出现乱码现象,开始一直以为是串口配置和程序代码问题,因为是第一次上电在线调试STM32板子,后面主要查串口波特率配置和收发函数程序段,如下图:

    波特率设置成115200没问题,试着降低波特率改成9600和4800但问题依旧没有解决,紧接着如下处理:


    将重定向函数注释,单独写串口发送字节和字符串函数,依旧失败。最后锁定到系统时钟配置上,由于手上的STM32开发板改用了12M的晶振,根据单片机时钟树的理解和解读,一般采用外部时钟HSE,系统时钟配置成72M,8*9=72,,12*6=72,对于 SYSCLK、HCLK、PCLK2、PCLK1 这四个时钟的配置一般是:PCLK2 = HCLK = SYSCLK=PLLCLK = 72M,PCLK1=HCLK/2= 36M。UART1挂载在APB2总线,而PCLK2 = HCLK = SYSCLK=PLLCLK = 72M,


    因此在system_stm32f10x.c文件中的setsysclockto72()函数中,(system_stm32f10x.c文件实现了 STM32的时钟配置,操作的是片上的 RCC这个外设统在上电之后,首选会执行由汇编编写的启动文件,启动文件中的复位函数中调用systemInit 函数就在这个文件里面定义。systemInit 函数默认调用setsysclockto72()配置系统时钟,系统的时钟就被初始化成 72M。这样便将系统时钟配置成了72M,否则为12*9=108M。但测试运行仍然接收到乱码。

    继续找问题所在,查看 在stm32f10x.h里,有下面这段代码,


    原因是库使用默认8MHz晶振,可以通过宏使用25MHz或12M晶振。具体定义在stm32f10x.h文件中,HSE_VALUE,一开始定义成了8000000,改成12000000搞定,串口通信显示正常。

    展开全文
  • stm32 串口通信数据乱码

    千次阅读 2019-04-01 22:23:33
    小白最近在写stm32的标准库的串口通讯程序,本来很简单的串口通讯,却硬生生被上位机接收到乱码的问题折磨了好久,反复百度了好几次,始终没搜到正确解决方法,不过最后终于在...虽然最后问题和这位大佬不太一样,但是...

    小白最近在写stm32的标准库的串口通讯程序,本来很简单的串口通讯,却硬生生被上位机接收到乱码的问题折磨了好久,反复百度了好几次,始终没搜到正确解决方法,不过最后终于在http://www.eeworld.com.cn/mcu/2018/ic-news081240692.html这篇帖子上找到了答案。虽然最后问题和这位大佬不太一样,但是我也是它列出的几个情况之一——外部时钟问题。正如这位大佬所说,串口通信用的是外部时钟,而在stm32f10x.h/stm32f4xx.h中的HSE的设置值HSE_VALUE默认是25MHz。因为官方的开发板是用的25MHz,但是有些开发板用的是8MHz,所以这个地方没改的话就可能出现乱码。我把这里一改,就ojbk了
    HSE_VALUE

    展开全文
  • 最近在做STM32的云端项目中遇到个问题:相同代码换了一块实验板之后串口输出全是乱码,最后细细一想后发现是两块是实验板所用的外部晶振频率不一样。修改之后,问题解决。 接下来演示一下修改工程的方法。 修改(stm...
  • 在一块晶振25M的stm32h750开发板上串口调试ok,主时钟频率配置改成8M,烧录在另外一块频率为8M的板子上,串口打印乱码
  • 我使用的开发板是正点原子的stm32f407探索者开发板,看的视频是野火的野火F407开发板-霸天虎视频-【中级篇】,使用的固件库也是野火的(问题就出在这),在做串口实验的时候,上位机接收到的数据显示总是乱码,但是...
  • 问题是这么发生的,负责驱动的同事上个月离职了,调试他留下来的驱动程序时发现串口数据收发都不对。 用示波器抓取波形,发现输入输出波形不一致,但是大体形状相同,后来排查下来怀疑是波特率不对 对照波特率计算...
  • STM32串口乱码

    2020-04-13 12:03:16
    今天用最小系统,需要串口的调试,然后就死活不对,一直是乱码,看Hex的话一直是出现0A 0A 0A 0A 0A 0A 0A 0A 0A在循环 问题分析并解决 问题 切记RXD端口如果出现问题,建议先将RXD端口设置成 =》GPIO_Mode_IPU(上...
  • stm32f107串口乱码

    2018-07-10 15:18:05
    最近在写串口程序的时候遇到了串口乱码的问题,后来上网查了之后才发现是晶振不匹配的原因。我使用的板子的晶振是16MHz,而系统默认是配置为8MHz,修改步骤:1:首先确认程序工程目录的文件属性为非只读的,如果是...
  • stm32写了个串口程序 上位机发送一个数字 返回一个数字,可是返回的是些不认识的字符,波特率已经同步9608 数据停止位 等都是一样的,tx接rx 还是乱 换了3个串口调试助手都是一样的,有谁知道,谢谢解答
  • STM32串口打印输出乱码的解决办法

    千次阅读 2019-03-17 17:11:48
    STM32串口打印输出乱码的解决办法 前言 最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样。很多STM32...
  • 在保证串口能接收到稳定数据的情况下,串口输出乱码很可能是重串口设备的波特率与STM32设置的波特率不同导致,小编使用HC-08的蓝牙无线串口模块,以及CH340的USB转串口进行连接,实现电脑端与STM32完成无线串口传输 ...
  • 进一步查看,发现串口调试助手显示16进制时,相同位置中文和乱码的16进制都是一样的,所以并不是串口输出错误。 原因: 每个英文由一个十六进制数组成,而每个汉字由两个十六进制数组成,所以,原因就是显示时,对...
  • 近期在调试板子的时候,发现串口打印数据乱码。 查看板子发现晶振是8M,但是固件库使用的外部晶振默认是25M。 修改HSE_VALUE为8M后,串口功能正常。
  • 问题现象:STM32F103VET6 + FreeRTOS_V9.0 + UART1 使用printf重映射后,串口输出汉子乱码。 使用固件版本: FreeRTOS V9.0.0 可能原因分析: 重映射错误 FreeRTOS操作系统实时性打断一帧数据发送 时钟配置...
  • stm32串口接收到乱码

    千次阅读 2017-07-05 15:43:00
    前言:之前用的是神州stm32f4那款单片机,但是最近,老师发了一块跟正点原子芯片一样的核心板,当我准备用串口调试时发现发出来的是乱码。本以为是单片机的问题,于是打开之前串口模板程序,发现出来的仍然是乱码。...
  • 本人利用的是中国移动赠送的麒麟开发板,在进行串口通信的实验时,采用正点原子的代码,发现会一直出现乱码的情况。经过两天时间的排查,最终发现是晶振的问题,麒麟开发板使用的...修改system_stm32f10x.c文件中...
  • 1、外部时钟频率配置错误导致,具体定义在stm32f10x.h文件中 2、设置的串口波特率–115200 3、硬件接入问题 TTL电平问题,开发板的TTL电平是3.3伏,如果用的是USB转串口的5V,不管怎么弄都会是乱码,换用232电平...
  • stm32标准库串口打印乱码 偶然间发现大佬的代码烧录手中的开发板后,打印出来一堆乱码,在确保串口助手设置都正常 看硬件所使用的外部晶振 检查外部晶振和 stm32f10x.h中的设置一致 #define HSE_VALUE ((uint32_t)...
  • stm32 串口乱码的解决

    2016-09-30 12:01:00
    但是自己写的程序能够刷到板子上,但是串口却是乱码。官方和我的额程序都是用的库函数的方式写的。在网上,有人说库函数默认是8兆晶振,但是“option for target”->"target"里将Xtal(MHz)设置为12,也不起作用。...
  • Stm32f429串口通信乱码问题:HSE_VALUE设置 在调试Stm32f429串口通信时,串口调试助手出现如图所示乱码。 由于需要用到的串口是UART7,而正点原子阿波罗开发板提供的例程是USART1,所以猜想是否是两个串口配置不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,209
精华内容 483
关键字:

stm32串口数据乱码