野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 754|回复: 7

为什么在发送字符串的函数里,字符串前面要加个空格?

[复制链接]
发表于 2023-8-15 18:02:15 | 显示全部楼层 |阅读模式
在学习串口通信的时候遇到一个奇怪的问题。用火哥的字符串发送函数向电脑发送字符串会收到乱码,但是用printf就是正常的。经过多次尝试,发现只要在要发送的字符串前面加一个空格问题就解决了。想问问其中的原理是什么。
这是在字符串前面加上空格的情况。


屏幕截图 2023-08-15 175226.png
屏幕截图 2023-08-15 175328.png
这是没有在字符串前面加上空格的情况。
屏幕截图 2023-08-15 175300.png
屏幕截图 2023-08-15 175352.png

回复

使用道具 举报

发表于 2023-8-16 17:57:28 | 显示全部楼层
你再按一次复位看看打印是否显示正常的了,一开始接收的数据是存在出错乱码这样的问题的,可能与电平不稳地以及数据缓冲区处理有关
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-16 19:34:22 | 显示全部楼层
野火论坛202308161933375466..png
复位之后也是乱码
回复 支持 反对

使用道具 举报

发表于 2023-8-18 08:52:15 | 显示全部楼层
换一下串口助手看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 19:55:13 | 显示全部楼层
菠萝片 发表于 2023-8-18 08:52
换一下串口助手看看

换了调试助手结果也是一样的,发现用Usart_Sendstr会少发送一个十六进制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 19:59:47 | 显示全部楼层
屏幕截图 2023-08-19 195131.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 20:19:03 | 显示全部楼层
屏幕截图 2023-08-19 195131.png

发现是这个寄存器标志位读错了,之前判断的的都是USART_FLAG_TC。可能是我实验的时候不小心改到了,忘记改回去了
回复 支持 反对

使用道具 举报

发表于 2023-8-22 17:54:15 | 显示全部楼层
一个字节用TXE是没问题的,多个字节最后采用TC
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-27 16:54 , Processed in 0.041683 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表