精华内容
下载资源
问答
  • STM32串口乱码

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

    前言

    今天用最小系统,需要串口的调试,然后就死活不对,一直是乱码,看Hex的话一直是出现0A 0A 0A 0A 0A 0A 0A 0A 0A在循环
    乱码

    问题分析并解决

    问题

    切记RXD端口如果出现问题,建议先将RXD端口设置成 =》GPIO_Mode_IPU(上拉输入),虽然手册写着浮空输入或带上拉输入都可以,建议直接使用带上拉输入模式
    在这里插入图片描述

    原因

    因为单片机端口处于 **GPIO_Mode_IN_FLOATING(浮空输入)**下,状态不稳定。

    解决

    将程序中GPIO_Mode_IN_FLOATING替换为GPIO_Mode_IPU
    STM
    然后问题就得以很好的解决了。
    在这里插入图片描述

    展开全文
  • stm32 串口乱码的解决

    2016-09-30 12:01:00
    但是自己写的程序能够刷到板子上,但是串口却是乱码。官方和我的额程序都是用的库函数的方式写的。在网上,有人说库函数默认是8兆晶振,但是“option for target”->"target"里将Xtal(MHz)设置为12,也不起作用。...
    前几天在中移物联网申请了一个迷你开发板,运行官方提供的程序,感觉板子是正常的。但是自己写的程序能够刷到板子上,但是串口却是乱码。官方和我的额程序都是用的库函数的方式写的。在网上,有人说库函数默认是8兆晶振,但是“option for target”->"target"里将Xtal(MHz)设置为12,也不起作用。
     
    对比发现,官方的库函数,都是在程序文件里的,mdk应该是4.X版的。我用的mdk5.X版的,后来在官网下载了5.21a的版本依然是同样的错误。
    我自己的程序的库文件是从 mdk的“Manage Run-Time Environment”界面下的Device -> StdPeriph Drivers 里选择对应文件。
    这些由系统提供的文件上都有一个锁,在编辑器里也无法修改。
     
    在官方和我的程序里都加上 printf("3-USART1->BRR \t %d\r\n",USART1->BRR); 语句,发现
     
    在设定波特率为115200下,官方数值为625,而我的程序为521
    在设定波特率为9600下,官方数值为7500,我的程序为6250
     
    依此判断,还频率的问题造成的。怎么修正还得研究。
     
    找到 “MDK安装目录\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include\stm32f10x.h”,在120行开始显示:
    #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 */
     
     
    曾经也尝试着自行定义 “#define HSE_VALUE    ((uint32_t)12000000)”也不起作用。
    后来,无意间发现,系统提供的文件,都是只读属性。去掉只读属性,在mdk里,钥匙图标没有了,可以修改stm32f10x.h文件了。
     
    结论,1、“option for target”->"target"里将Xtal(MHz)的参数仅用于模拟调试,不影响实际板卡的参数设置。系统提供的文件可以被修改。3、在错位的情况下,芯片可能被超频了。但是还能运行(没坏)。
     
    看似上述不多的文字,却耗费了我几周的业余时间做各种验证测试。希望能够帮助有此类问题的朋友。

    转载于:https://www.cnblogs.com/htsky/p/5923422.html

    展开全文
  • 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串口通信乱码详细处理方法

    万次阅读 多人点赞 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-07-04 11:06:25
    STM32串口通信乱码解决方法 STM32使用USART做串口通信实验的时候,串口调试助手能够接收到数据但出现乱码现象,显示开发板发来的数据总是问号或者不规则字体,主要原因可能是串口波特率设置不对或者系统时钟设置出...
  • 最近在做STM32的云端项目中遇到个问题:相同代码换了一块实验板之后串口输出全是乱码,最后细细一想后发现是两块是实验板所用的外部晶振频率不一样。修改之后,问题解决。 接下来演示一下修改工程的方法。 修改(stm...
  • stm32f107串口乱码

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

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

    千次阅读 2019-03-17 17:11:48
    STM32串口打印输出乱码的解决办法 前言 最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样。很多STM32...
  • 进一步查看,发现串口调试助手显示16进制时,相同位置中文和乱码的16进制都是一样的,所以并不是串口输出错误。 原因: 每个英文由一个十六进制数组成,而每个汉字由两个十六进制数组成,所以,原因就是显示时,对...
  • 在一块晶振25M的stm32h750开发板上串口调试ok,主时钟频率配置改成8M,烧录在另外一块频率为8M的板子上,串口打印乱码
  • stm32串口接收到乱码

    千次阅读 2017-07-05 15:43:00
    前言:之前用的是神州stm32f4那款单片机,但是最近,老师发了一块跟正点原子芯片一样的核心板,当我准备用串口调试时发现发出来的是乱码。本以为是单片机的问题,于是打开之前串口模板程序,发现出来的仍然是乱码。...
  • 1、外部时钟频率配置错误导致,具体定义在stm32f10x.h文件中 2、设置的串口波特率–115200 3、硬件接入问题 TTL电平问题,开发板的TTL电平是3.3伏,如果用的是USB转串口的5V,不管怎么弄都会是乱码,换用232电平...
  • 在保证串口能接收到稳定数据的情况下,串口输出乱码很可能是重串口设备的波特率与STM32设置的波特率不同导致,小编使用HC-08的蓝牙无线串口模块,以及CH340的USB转串口进行连接,实现电脑端与STM32完成无线串口传输 ...
  • STM32F105的串口乱码问题

    千次阅读 2017-10-11 23:56:38
    STM32F105的串口乱码问题我在调试STM32F105时,串口发送数据一致乱码,找来找去,原来问题还是出现在软件配置上。 然后我发现在文件stm32f10x.h中有这么一段代码。if !defined HSE_VALUE#ifdef STM32F10X_CL #...
  • stm32串口出现中文乱码问题解决方案

    千次阅读 2019-03-01 17:14:27
    一、检查main.c的文件编码是不是ANSI编码 二、检查系统的晶振是不是8MHz的,或者是25MHz的,这些信息在stm32f10x,h的头文件有定义。
  • 近期在调试板子的时候,发现串口打印数据是乱码。 查看板子发现晶振是8M,但是固件库使用的外部晶振默认是25M。 修改HSE_VALUE为8M后,串口功能正常。
  • 今天在写STM32的printf时,发现打印的第一个字符总是'?' 一、我的代码(第二张图片特重要) a. 打印代码 b. 串口驱动程序 记住第一张图片的函数名称及内容,下面会用到 之所以列上面这些...
  • 问题现象:STM32F103VET6 + FreeRTOS_V9.0 + UART1 使用printf重映射后,串口输出汉子乱码。 使用固件版本: FreeRTOS V9.0.0 可能原因分析: 重映射错误 FreeRTOS操作系统实时性打断一帧数据发送 时钟配置...
  • 本人利用的是中国移动赠送的麒麟开发板,在进行串口通信的实验时,采用正点原子的代码,发现会一直出现乱码的情况。经过两天时间的排查,最终发现是晶振的问题,麒麟开发板使用的...修改system_stm32f10x.c文件中...
  • stm32标准库串口打印乱码 偶然间发现大佬的代码烧录手中的开发板后,打印出来一堆乱码,在确保串口助手设置都正常 看硬件所使用的外部晶振 检查外部晶振和 stm32f10x.h中的设置一致 #define HSE_VALUE ((uint32_t)...

空空如也

空空如也

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

stm32串口乱码