STM32 串口乱码
问题描述
用正点原子STM32F4探索者开发板调试野火骄阳电机驱动程序,发现串口输出一直是乱码。问题排查:
- 串口调试助手编码方式?同一个串口调试助手,用正点原子、STM32CubeMX生成的程序发送数据正常。排除串口调试助手问题。
- 串口配置函数问题?仔细检查过串口配置,GPIO配置,用STM32CubeMX与骄阳程序相互替换,问题仍然存在。
- HAL库其它文件干扰?删除多余HAL库文件,与STM32CubeMX用到的库文件保持一致。问题仍然存在。
- 参考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 串口乱码相关推荐
- STM32串口打印输出乱码的解决办法
前言 最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样.很多STM32开发板都是使 ...
- STM32 串口发送乱码问题
STM32 串口发送乱码问题 一.问题状况: 显示为一堆乱码,
- K210学习笔记(五)——MAIX BIT(K210)与STM32串口通讯
前言 uart 模块主要用于驱动开发板上的异步串口,可以自由对 uart 进行配置.k210 一共有3个 uart,每个 uart 可以进行自由的引脚映射. 一.MAIX BIT串口使用步骤 1.引脚 ...
- STM32串口通信详解以及通信异常或者卡死常见问题分析
STM32串口通信详解以及通信异常或者卡死常见问题分析 目录 STM32串口通信详解以及通信异常或者卡死常见问题分析 一.常见的异常问题 二.STM32的串口简介 1.串口的通讯方式 ①按数据传输方向 ...
- STM32串口通信学习总结
STM32串口通信学习总结 1.概述 1.1学习目的 ...
- K210学习笔记(一) K210与STM32串口通信相关
文章目录 前言 一.STM32 串口中断 接收K210板子发送的ASCII码整数 转换为 多位整形数据 二.MAIX BIT(K210)与STM32串口通讯 2.1 实现MAIX BIT与XCOM之间 ...
- dma接收双缓存 stm32_容易被大多数人忽视的STM32串口DMA问题
讨论三个问题: 1.什么叫串口DMA 请求: 2.串口简要复习: 3.串口DMA发送流程. 第一 什么叫串口DMA 请求(战舰STM32开发板) 说这个问题之前先简单回顾DMA的基本特性.先导出原子哥 ...
- STM32串口接收数据
参考串口接收中断处理函数: //------------------------------------------------------------------ //函数名:void USART1 ...
- STM32串口第一个字节丢失问题的分析过程
STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据 ...
最新文章
- Crystal Reports中的字段
- 获取下月第一天_获取当前月 下月 下下月 的第一天和最一天
- 从零开始学安全(三)●黑客常用的windows端口
- html5 sse java_html5----sse实现服务端推送数据给前端
- PHP json_encode后的数据有的大括号于中括号
- android蓝牙串口 hc06,Android手机通过蓝牙模块HC-06连接Arduino串口输出
- linux查看进程详细信息top,linux查看系统进程信息命令 px,top详解
- 2011 ICM 美国数据建模赛题
- Linux 关闭防火墙命令
- 一次性去掉Word 2013文档中所有文字下波浪线的方法
- [github高级控件]带你走近-自定义标签云
- 高难度c语言编程题,高难度脑筋急转弯题目合集带答案
- 北漂9年了,37岁的我跳槽进了国企,开启了一段新的人生旅程
- asp.net mvc 连接sqlserver数据库
- 数字图像处理(1)图像取样,4倍,16倍减采样,matlab实现
- 每个工程师都应该知道的事——射频发射机功率怎么测量
- CSS pink老师教学笔记详解
- 百问网7天物联网智能家居 学习心得 打卡第五天
- linux虚拟网口不同vlan,Openwrt创建虚拟网口(macvlan)
- 仙侠手游源码《一剑问情》完整云服务器搭建过程-源码带GM后台+视频教程加文字教程