专题stm32 和ubuntu串口通信乱码
在使用 STM32 和 Ubuntu 进行串口通信时出现乱码,通常由以下几个原因引起,以下是排查和解决方法:
1. 波特率不匹配
- 现象:最常见的乱码原因,双方波特率设置不一致。
- 解决方法:
- STM32 端:检查代码中的
USART_InitStruct.BaudRate设置(如 115200)。 - Ubuntu 端:确保终端工具(如
minicom、screen、gtkterm)的波特率与设备一致。 - 验证命令:
stty -F /dev/ttyUSB0 115200(以实际设备名和波特率替换)。
- STM32 端:检查代码中的
2. 数据格式不一致
- 现象:数据位、停止位、校验位不匹配(如 8N1 vs 7E1)。
- 解决方法:
- STM32 端:确认初始化代码中的配置:
USART_InitStruct.USART_WordLength = USART_WordLength_8b; // 8位数据 USART_InitStruct.USART_StopBits = USART_StopBits_1; // 1位停止位 USART_InitStruct.USART_Parity = USART_Parity_No; // 无校验 - Ubuntu 端:在终端工具中设置相同参数(如
minicom中按Ctrl+A → O → Serial port setup)。
- STM32 端:确认初始化代码中的配置:
3. 硬件连接问题
- 现象:TX/RX 交叉连接错误或电平不兼容。
- 解决方法:
- 确保 STM32 的 TX 引脚连接至 USB 转串口模块的 RX,反之亦然。
- 检查 USB 转串口模块是否支持 3.3V 电平(部分模块需外接电平转换电路)。
4. 终端工具配置错误
- 现象:终端工具自动添加换行符或编码格式错误。
- 解决方法:
- 关闭终端工具的本地回显和自动换行功能。
- 对于
minicom,禁用Add Linefeed选项:minicom -D /dev/ttyUSB0 -C <设置文件> # 进入设置后,取消 "Add Linefeed" 选项 - 对于 Python 脚本,使用
pyserial时确保以二进制格式读写:import serial ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) data = ser.read(10) # 读取原始字节 print(data.decode('utf-8', errors='ignore')) # 按需解码
5. 时钟配置错误(STM32 端)
- 现象:STM32 的 USART 时钟源或分频系数错误,导致实际波特率偏差。
- 解决方法:
- 使用 STM32CubeMX 重新生成代码,确保系统时钟和 USART 时钟配置正确。
- 通过公式验证波特率: [ \text{波特率} = \frac{\text{USART 时钟频率}}{16 \times \text{USARTDIV}} ]
- 使用示波器测量实际波特率是否匹配。
6. 数据编码问题
- 现象:发送方和接收方数据格式不一致(如 ASCII vs HEX)。
- 解决方法:
- STM32 端:若发送二进制数据,避免直接发送未编码的字符。
- Ubuntu 端:终端工具设置为 HEX 模式查看原始数据(如
minicom中按Ctrl+A → L)。
7. 测试方法
- 回环测试:短接 STM32 的 TX 和 RX 引脚,发送数据后检查是否正常接收。
- 固定数据测试:STM32 循环发送 "ABCD1234",观察接收是否稳定。
- 更换工具测试:尝试不同终端工具(如
screen、gtkterm、Python 脚本)。
总结步骤
- 检查硬件连接(TX/RX、电源、电平)。
- 确认双方波特率、数据位、校验位完全一致。
- 使用示波器或逻辑分析仪验证信号质量。
- 简化代码和测试数据,逐步排查。
通过以上方法,通常可以定位并解决乱码问题。
-
通过串口烧写STM32程序的教程方法
如何通过串口烧写STM32程序的教程方法! 用交叉串口线连接开发板和电脑, BOOT0 选择为 1,BOOT1 选择为 0,接上开发板电源,SW1 切换到 ON 打开电源开关。 从开始程序菜单打开 Flash Loader Demo 程序,所有程序-》STMicroelectronics-》Flash Loader Demonstrator-》F
0次下载 2022-03-22 0.91 MB -
STM32串口打印输出乱码的解决办法
很多STM32开发板都是使用的8M晶振,这个也是ST官方推荐的晶振频率,而且固件库默认是8M频率,倍频系数9。而uFUN开发板的晶振是和CH340共用一个12M晶振。如果固件库的参数不和硬件实际连接的晶振频率一致,那么不仅是串口会出现乱码,而且定时器这些也是不准确的,因为基本的工作时钟被打乱了......
2次下载 2022-02-10 555.28KB -
STM32串口打印输出乱码的解决办法
最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最...
2次下载 2022-01-26 288.27KB -
Ubuntu16之STM32开发--点灯和串口通信
简介环境如下:硬件: NUCLEO-F767ZI 板初始配置: STM32CubeMX (HAL库)IDE: TrueSTUDIO串口工具: CuteCOM初始配置打开STM32CubeMX -&amp;amp;gt; New Project -&amp;amp;gt; 选择NUCLEO-F767, 开发板图片双击:弹出对话
2次下载 2021-12-24 -
STM32串口通信乱码解决方法
STM32串口通信乱码解决方法STM32使用USART做串口通信实验的时候,串口调试助手能够接收到数据但出现乱码现象,显示开发板发来的数据总是问号或者不规则字体,主要原因可能是串口波特率设置不对或者系统时钟设置出问题。波特率设置波特率设置须与串口接收调试助手设置一致。尝试降低波特率为9600,依然出现乱码。可能就是系统时钟设置出问题。系统时钟设置本人核心板使
21次下载 2021-12-24 -
STM32踩坑:STM32串口发送乱码问题
STM32串口发送乱码问题小编是一个嵌入式初学者,才学没多久,将近两个月的样子,在学习过程中遇到了一些问题,在这里给大家分享一下解决方案。今天要分享的问题是 STM32 串口发送字符串,但是在调试助手上面接收到的字符却是一串乱码,看着让人头疼。这是乱码的图片然后问了公司办公室的大佬,也在网上查了一下资料,总结了一下,原因大致有两点:1) 开发板上外部时钟的晶
12次下载 2021-12-24 -
STM32CudeIDE:串口发送汉字乱码
一、乱码用STM32CudeIDE建立一个工程,写了一个串口发送,发现:发送英文正常,但发送中文会乱码这是中文编码格式不对需要设置一下,有两个地方需要设置一下,把编码方式改成GBK,在文本文件编码哪里选中缺省值选其他,箭头下拉如果没有GBK,可直接键盘输入。然后重新编译烧写,测试,乱码消除。二、代码补全Visual Studio 在写的代码时有代码补全,包括
5次下载 2021-12-24 -
STC51和STM32使用串口输出中文乱码问题解决
STC51和STM32使用串口输出中文乱码问题解决问题描述:在进行串口实验时,我们想通过串口调试助手来输出中文信息, 但是我们经常会发现在串口调试助手上会输出乱码,跟我们预期的中文信息不符,见以下图片:解决思路:1、检查软件串口波特率设置和串口调试助手的波特率设置是否一致;2、软件串口波特率计算不是整数,跟串口调试助手就难以沟通,所以软件内部波特率
7次下载 2021-12-23 -
单片机串口通信乱码问题
单片机串口通信乱码问题问题:测试51单片机串口通信时,设置主程序为单片机将接收到的数据发送出去,但在串口助手接收到的单片机发来的数据总是乱码。解决:经检查,是晶振频率设置错误,将原先的12MHz改为11.0592MHz后通信正常。在设置的同一初值下,用11.0592MHz计算时波特率为9600整,用12MHz计算时9600后有很小的小数,没想到这么一点差别能
10次下载 2021-12-23 -
stm32 串口通信数据乱码
小白最近在写stm32的标准库的串口通讯程序,本来很简单的串口通讯,却硬生生被上位机接收到乱码的问题折磨了好久,反复百度了好几次,始终没搜到正确解决方法,不过最后终于在http://www.eeworld.com.cn/mcu/2018/ic-news081240692.html这篇帖子上找到了答案。虽然最后问题和这位大佬不太一样,但是我也是它列出的几个情况
17次下载 2021-12-13 -
虚拟串口通信软件vspd7.2.308下载
虚拟串口通信软件vspd7.2.308下载
45次下载 2021-07-21 6.18 MB -
STM32的几种串口通信协议资料下载
电子发烧友网为你提供STM32的几种串口通信协议资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
28次下载 2021-04-21 311.55KB -
STM32单片机多串口通信仿真测试技术研究资料下载
电子发烧友网为你提供STM32单片机多串口通信仿真测试技术研究资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
13次下载 2021-04-19 167.53KB -
通信接口背景知识与STM32串口原理资料下载
电子发烧友网为你提供通信接口背景知识与STM32串口原理资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
34次下载 2021-03-28 478.29KB -
如何学习zigbee的串口通信
本文档的主要内容详细介绍的是如何学习zigbee的串口通信 纠错:U0DBUF发送缓冲区,但是我在中文手册手册上没有找的到这个寄存器,手册上只有U0BUF,U0BUF编译会出错,我去查了下英文手册,才发现原来是翻译人员翻译错误了,只有U0DBUF,建议看英文手册。
3次下载 2019-05-28 0.06 MB
- 本周
- 本月
- 总榜
-
14.22 MB 2次下载 免费
-
2
晶振技术解析---电子设备的“时钟心脏”
1.55 MB 1次下载 免费 -
3
AC/DC 225W 开板电源 LOF225-23BxxR2系列数据手册
2.70 MB 1次下载 1积分 -
4
产品彩页-CX-N数据中心交换机-v1.5
5.08 MB 0次下载 免费 -
5
AU6830M 集成音频 DSP 的 2 × 41W 数字型 Class D 音频功率放大器数据手册
1.86 MB 0次下载 免费 -
6
双MIC降噪远场拾音模块AN-93规格书
673.58 KB 0次下载 免费 -
7
I-PEX 82861-100B-02-D_CABLINE-CA系列20P 服务器极细同轴线束图纸
264.86 KB 0次下载 免费 -
8
AD-04双麦模拟转数字(ADC)模组规格书V1
593.75 KB 0次下载 免费