问题描述

用正点原子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 串口乱码相关推荐

  1. STM32串口打印输出乱码的解决办法

    前言 最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样.很多STM32开发板都是使 ...

  2. STM32 串口发送乱码问题

    STM32 串口发送乱码问题 一.问题状况: 显示为一堆乱码,

  3. K210学习笔记(五)——MAIX BIT(K210)与STM32串口通讯

    前言 uart 模块主要用于驱动开发板上的异步串口,可以自由对 uart 进行配置.k210 一共有3个 uart,每个 uart 可以进行自由的引脚映射. 一.MAIX BIT串口使用步骤 1.引脚 ...

  4. STM32串口通信详解以及通信异常或者卡死常见问题分析

    STM32串口通信详解以及通信异常或者卡死常见问题分析 目录 STM32串口通信详解以及通信异常或者卡死常见问题分析 一.常见的异常问题 二.STM32的串口简介 1.串口的通讯方式 ①按数据传输方向 ...

  5. STM32串口通信学习总结

                                                                             STM32串口通信学习总结 1.概述 1.1学习目的 ...

  6. K210学习笔记(一) K210与STM32串口通信相关

    文章目录 前言 一.STM32 串口中断 接收K210板子发送的ASCII码整数 转换为 多位整形数据 二.MAIX BIT(K210)与STM32串口通讯 2.1 实现MAIX BIT与XCOM之间 ...

  7. dma接收双缓存 stm32_容易被大多数人忽视的STM32串口DMA问题

    讨论三个问题: 1.什么叫串口DMA 请求: 2.串口简要复习: 3.串口DMA发送流程. 第一 什么叫串口DMA 请求(战舰STM32开发板) 说这个问题之前先简单回顾DMA的基本特性.先导出原子哥 ...

  8. STM32串口接收数据

    参考串口接收中断处理函数: //------------------------------------------------------------------ //函数名:void USART1 ...

  9. STM32串口第一个字节丢失问题的分析过程

    STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据 ...

最新文章

  1. Crystal Reports中的字段
  2. 获取下月第一天_获取当前月 下月 下下月 的第一天和最一天
  3. 从零开始学安全(三)●黑客常用的windows端口
  4. html5 sse java_html5----sse实现服务端推送数据给前端
  5. PHP json_encode后的数据有的大括号于中括号
  6. android蓝牙串口 hc06,Android手机通过蓝牙模块HC-06连接Arduino串口输出
  7. linux查看进程详细信息top,linux查看系统进程信息命令 px,top详解
  8. 2011 ICM 美国数据建模赛题
  9. Linux 关闭防火墙命令
  10. 一次性去掉Word 2013文档中所有文字下波浪线的方法
  11. [github高级控件]带你走近-自定义标签云
  12. 高难度c语言编程题,高难度脑筋急转弯题目合集带答案
  13. 北漂9年了,37岁的我跳槽进了国企,开启了一段新的人生旅程
  14. asp.net mvc 连接sqlserver数据库
  15. 数字图像处理(1)图像取样,4倍,16倍减采样,matlab实现
  16. 每个工程师都应该知道的事——射频发射机功率怎么测量
  17. CSS pink老师教学笔记详解
  18. 百问网7天物联网智能家居 学习心得 打卡第五天
  19. linux虚拟网口不同vlan,Openwrt创建虚拟网口(macvlan)
  20. 仙侠手游源码《一剑问情》完整云服务器搭建过程-源码带GM后台+视频教程加文字教程

热门文章

  1. 计算机组成原理实验移位运算,计算机组成原理移位运算实验.docx
  2. 谷歌的愚人节玩笑开大了
  3. Oracle---启动与关闭数据库实例
  4. 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一) .
  5. 7-6 拿糖果 (15 分)
  6. php 图片压缩 保留exif,保留图片原有的EXIF
  7. java用tabula解析pdf文件中的表格
  8. 数字图像处理之matlab大作业:车牌识别
  9. ILSpy——C#反编译工具
  10. 2022VR高级研修班总结