精华内容
下载资源
问答
  • stm32串口发送数据乱码
    千次阅读
    2021-09-04 15:42:37

    使用hal库函数

    情况:

    在使用串口输出中英文混合字符时,
    遇到了英文和数字正常显示,
    中文出现乱码的情况,

    进一步查看,发现串口调试助手显示16进制时,相同位置中文和乱码的16进制都是一样的,所以并不是串口输出错误。

    原因:

    每个英文由一个十六进制数组成,而每个汉字由两个十六进制数组成,所以,原因就是显示时,对汉字的组成出现了错误,将前后相邻的两个汉字,各自取了一位16进制数,组成汉字显示,因此出现乱码。

    解决:

    在每段串口输出的字符的后面,加上"\r\n",让串口知道,应该在哪里结束,在哪里开始,就不会出现乱码了。
    此外,当串口连续输出多端文字时,每段文字加上一点延时。

    hal_delay(100);
    
    更多相关内容
  • 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 串口乱码

    千次阅读 2022-04-07 14:56:35
    同一个串口调试助手,用正点原子、STM32CubeMX生成的程序发送数据正常。排除串口调试助手问题。 串口配置函数问题?仔细检查过串口配置,GPIO配置,用STM32CubeMX与骄阳程序相互替换,问题仍然存在。 HAL库其它文件...

    问题描述

    用正点原子STM32F4探索者开发板调试野火骄阳电机驱动程序,发现串口输出一直是乱码。问题排查:

    1. 串口调试助手编码方式?同一个串口调试助手,用正点原子、STM32CubeMX生成的程序发送数据正常。排除串口调试助手问题。
    2. 串口配置函数问题?仔细检查过串口配置,GPIO配置,用STM32CubeMX与骄阳程序相互替换,问题仍然存在。
    3. HAL库其它文件干扰?删除多余HAL库文件,与STM32CubeMX用到的库文件保持一致。问题仍然存在。
    4. 参考STM32串口通信乱码详细处理方法,更改stm32f4xx_hal_conf.h文件中HSE_VALUE = 8000000,此处设置的是外部晶振时钟频率,而SystemClock_Config()函数中RCC_OscInitStruct.PLL.PLLM = 8;是PLLM分频系数。系统内部很多参数是直接调用HSE_VALUE 的值,所以一定要修改这个值。
    #if !defined  (HSE_VALUE)
      #define HSE_VALUE    8000000U /*!< Value of the External oscillator in Hz */
    #endif /* HSE_VALUE */
    
    /**
      * @brief System Clock Configuration
      * @retval None
      */
    void SystemClock_Config(void)
    {
      RCC_OscInitTypeDef RCC_OscInitStruct = {0};
      RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
    
      /** Configure the main internal regulator output voltage
      */
      __HAL_RCC_PWR_CLK_ENABLE();
      __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
      /** Initializes the RCC Oscillators according to the specified parameters
      * in the RCC_OscInitTypeDef structure.
      */
      RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
      RCC_OscInitStruct.HSEState = RCC_HSE_ON;
      RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
      RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
      RCC_OscInitStruct.PLL.PLLM = 8;
      RCC_OscInitStruct.PLL.PLLN = 336;
      RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
      RCC_OscInitStruct.PLL.PLLQ = 4;
      if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
      {
        Error_Handler();
      }
      /** Initializes the CPU, AHB and APB buses clocks
      */
      RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                                  |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
      RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
      RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
      RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
      RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
    
      if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
      {
        Error_Handler();
      }
    }
    

    STM32时钟配置参数

    参考:
    STM32串口通信乱码详细处理方法

    展开全文
  • 显示为一堆乱码,晕啊。 通过改变晶振配置,准确解决stm32HAL库开发中串口发送乱码问题。

    STM32 串口发送乱码问题

    一、问题状况:

    显示为一堆乱码,💢😠💢晕啊 。

    请添加图片描述

    二、解决方法

    (通常问题是出在step3:调整外部振荡器默认值)

    step1:检查时钟树配置

    设置晶振为开发板上外部晶振一致的8MHz
    请添加图片描述

    step2:检查波特率等是否统一

    请添加图片描述请添加图片描述

    step3:调整外部振荡器默认值

    ctrl+F键调出查找窗口。

    输入25000000查找。

    选择 Current Project(当前项目)为查找范围。

    点击Find Next

    请添加图片描述

    将找到的所有25000000改为8000000

    //修改前
    #if !defined  (HSE_VALUE) 
      #define HSE_VALUE    ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
    #endif /* HSE_VALUE */
    
    //修改后
    #if !defined  (HSE_VALUE) 
      #define HSE_VALUE    ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz */
    #endif /* HSE_VALUE */
    

    同理Ctrl+H键将25000000替换为8000000也行。

    🉑大功告成🉑

    ⏰注:本文修改为的8000000(8MHz)要依据开发板外部晶振酌情改变。

    请添加图片描述
    请添加图片描述

    展开全文
  • stm32串口收到的数据乱码串口通信问题
  • STM32串口发送接收数据

    万次阅读 多人点赞 2021-07-14 18:56:39
    我用的32stm32f10x最小系统没有UART4和UART5 USART : 通用同步异步收发器 UART : 通用异步收发器 nRTS : 请求发送 nCTS : 请求接收 区别:USART指单片机的一个IO端口模块,可以根据需要配置成同步模式(SPI,IIC),也...
  • STM32串口通信出现乱码(使用官方标准库)

    千次阅读 多人点赞 2020-09-26 16:18:00
    解决stm32串口通信出现乱码,sscom串口调试助手,官方标准库。
  • stm32标准库串口输出乱码情况解决

    千次阅读 2022-06-13 09:16:37
    stm32标准库串口输出乱码情况的几种解决方法
  • 问题遇到的现象和发生背景 大致就是想要通过stm32将ad芯片转换的电容数值先存入一个叫cap【】的数组中(比如电容值为84.96,处理过后转为字符8 4 9 6 存入cap【6】中)正点原子的上位机接受的是显示如下图,我想让他...
  • STM32CudeIDE:串口发送汉字乱码

    千次阅读 2020-12-29 01:06:53
    STM32CudeIDE建立一个工程,写了一个串口发送,发现:发送英文正常,但发送中文会乱码 这是中文编码格式不对需要设置一下,有两个地方需要设置一下,把编码方式改成GBK, 在文本文件编码哪里选中缺省值 选其他...
  • STM32F401串口发送程序乱码解决方法(HAL库)
  • 问题描述:项目中使用STM32L4系例单片机作为主控,为节省MCU资源,串口发送指令或者数据使用DMA方式。 测试发现发送指令输出不正确,数据个数正确,数据乱码情况。debug发现数据转存数组transmit_data中存储数据...
  • 串口只有中文乱码,其他显示正常 一开始在Keil里修改编码方式,修改晶振都没有解决问题,搞了一下午哭~ 解决: 使用记事本打开主程序,另存为时可在右下角修改文件的编码方式改为ANSI,替换原文件 参考:...
  • 而demo程序的时钟晶振和你的时钟晶振不一定都是一样,如果demo使用的是25M晶振,而你的板子使用的是8M晶振,这时你没有 把 HSE_VALUE由原来的 25000000 的值改成 8000000 导致时钟不对,串口打印乱码。......
  • STM32串口发送16进制数据

    千次阅读 2021-05-17 16:23:21
    //说明:用u8或unsigned char都能正常发送 //示例 1 u8 send1=0x55; printf("%c",send1); //示例 2 unsigned char send2=0x55; printf("%c",send2); 方法二(用固件库) 下面展示两个示例 // An highlighted block ...
  • 解决STM32F407串口数据乱码问题

    千次阅读 多人点赞 2021-05-14 15:10:49
    我使用的开发板是正点原子的stm32f407探索者开发板,看的视频是野火的野火F407开发板-霸天虎视频-【中级篇】,使用的固件库也是野火的(问题就出在这),在做串口实验的时候,上位机接收到的数据显示总是乱码,但是...
  • STM32串口打印输出乱码的解决办法

    万次阅读 2019-03-17 17:11:48
    STM32串口打印输出乱码的解决办法 前言 最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样。很多STM32...
  • stm32串口输出为乱码或不能接收数据

    千次阅读 2020-05-21 18:23:21
    在保证串口能接收到稳定数据的情况下,串口输出乱码很可能是重串口设备的波特率与STM32设置的波特率不同导致,小编使用HC-08的蓝牙无线串口模块,以及CH340的USB转串口进行连接,实现电脑端与STM32完成无线串口传输 ...
  • 编写了一个计算器,有兴趣的朋友可以试试。可以计算串口通信USART、UART的波特率,通信误差,预分频系数等。不同晶振频率对于串口通信的影响。 UART通信的配置。 参数计算。 码率和误差计算。
  • 我在测试USART DMA方式发送数据的时候出现了串口助手接收到的数据和程序中数据不一致的问题,感觉像是错位问题,但是跟错位感觉又不一样。大婶们帮忙看看吧, void USART1_Config(void) { GPIO_InitTypeDef GPIO_...
  • 今天在写STM32的printf时,发现打印的第一个字符总是'?' 一、我的代码(第二张图片特重要) a. 打印代码 b. 串口驱动程序 记住第一张图片的函数名称及内容,下面会用到 之所以列上面这些...
  • STC51和STM32使用串口输出中文乱码问题解决 问题描述:在进行串口实验时,我们想通过串口调试助手来输出中文信息, 但是我们经常会发现在串口调试助手上会输出乱码,跟我们预期的中文信息不符,见以下图片: ...
  • STM32串口通信乱码详细处理方法

    万次阅读 多人点赞 2018-01-13 10:26:24
    STM32串口通信以及温度采集搞定,其中主要遇到STM32系列单片机时钟树的问题,串口通信遇到串口调试助手能够接收到数据但出现乱码现象,开始一直以为是串口配置和程序代码问题,因为是第一次上电在线调试STM32板子,...
  • STM32使用串口printf打印乱码问题
  • ex.c,stm32f7xx_hal.c,stm32f7xx_hal_can.c,stm32f7xx_hal_i2c.c,stm32f7xx_hal_adc.c,stm32f7xx_hal_nor.c,stm32f7xx_ll_sdmmc.c,stm32f7xx_hal_iwdg.c,stm32f7xx_hal_smartcard_ex.c,stm32f7xx_hal_sai_ex.c,stm32...
  • 单片机功能为定时向外发送数据,用串口助手给单片机发送数据会造成死机,分析原因无果,在网上搜索,发现HAL库串口发送和接收都会上锁,处于忙状态,也就是发送和接收不能同时进行,否则会异常。发送函数为HAL_UART_...
  • STM32F031,HAL使用USART_LL库,在串口中断中添加定时器解决串口接收数据有丢失的情况
  • 问题是这么发生的,负责驱动的同事上个月离职了,调试他留下来的驱动程序时发现串口数据收发都不对。 用示波器抓取波形,发现输入输出波形不一致,但是大体形状相同,后来排查下来怀疑是波特率不对 对照波特率计算...
  • stm32 串口通信数据乱码

    千次阅读 2019-04-01 22:23:33
    小白最近在写stm32的标准库的串口通讯程序,本来很简单的串口通讯,却硬生生被上位机接收到乱码的问题折磨了好久,反复百度了好几次,始终没搜到正确解决方法,不过最后终于在...虽然最后问题和这位大佬不太一样,但是...
  • 简介:STM32与上位机之间用通信协议(自己定义)进行串口通信。怎么判断上位机发过来的指令是正确的,而不是一串乱码?怎么从正确的指令中提取出想要的命令代号,从而实现想要的功能? 方法:读取上位机发来的命令,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,466
精华内容 586
热门标签
关键字:

stm32串口发送数据乱码

友情链接: Cardcase-java.rar