找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1593|回复: 10
打印 上一主题 下一主题
收起左侧

MCU串口通信首字母乱码问题

[复制链接]
跳转到指定楼层
楼主
ID:705846 发表于 2024-5-7 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

standby首字母乱码,注释掉下面的发送语句就不会乱码,请问是什么问题。


        while(1)
        {
        
                set1=249;                        
                SendString("standby");
                delay(2000);
                        
                SendByte(set1);   //注释这行,就没有乱码
                delay(5000);

        }        

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2024-5-7 14:20 | 只看该作者
SendString()函数有bug。
回复

使用道具 举报

板凳
ID:23640 发表于 2024-5-7 15:36 | 只看该作者
题主可试下把249改成48,249没在ASCII码范围内
回复

使用道具 举报

地板
ID:705846 发表于 2024-5-7 17:18 | 只看该作者
Hephaestus 发表于 2024-5-7 14:20
SendString()函数有bug。

void SendByte(BYTE dat)
{
        SBUF=dat;
        while(!TI);
        TI=0;
}

void SendString(unsigned char *str)
{
        while(*str!='\0')
        {
                _nop_();
                SendByte(*str);
                str++;       
        }
}
回复

使用道具 举报

5#
ID:705846 发表于 2024-5-7 17:28 | 只看该作者
yaosongjin 发表于 2024-5-7 15:36
题主可试下把249改成48,249没在ASCII码范围内

改成48可以,请问有什么办法解决呢
回复

使用道具 举报

6#
ID:705846 发表于 2024-5-7 18:03 | 只看该作者

回复

使用道具 举报

7#
ID:192020 发表于 2024-5-8 11:00 | 只看该作者

因为249不在ASCII码表内,编码会把249和你首位的S合在一起当成汉字来显示,但是这汉字可能也没有就乱码了。第一次打印应该是正常显示standby的,解决办法是要不就一起发送ascii码,要不就一起发hex格式,一样发一个显示乱码正常
回复

使用道具 举报

8#
ID:705846 发表于 2024-5-8 12:44 | 只看该作者
qq475878026 发表于 2024-5-8 11:00
因为249不在ASCII码表内,编码会把249和你首位的S合在一起当成汉字来显示,但是这汉字可能也没有就乱码了 ...

确实如你所说,第一个字符串是没有乱码。 如果用hex格式,接收端需要用额外的函数把hex格式转换成字符和10进制数吗。还是说可以直接处理接收到的数。
回复

使用道具 举报

9#
ID:192020 发表于 2024-5-8 13:47 | 只看该作者
samxon 发表于 2024-5-8 12:44
确实如你所说,第一个字符串是没有乱码。 如果用hex格式,接收端需要用额外的函数把hex格式转换成字符和1 ...

你需要的应该是文本显示,接收端是电脑,发送端是MCU,你需要在发送端加函数把set1转成ascii就行。
就好像要acsii码显示249,就要发送三位byte,SendByte('2'),SendByte('4'),SendByte('9'),写个这样的转换函数发送。
回复

使用道具 举报

10#
ID:883242 发表于 2024-5-8 20:49 | 只看该作者
你们都没看楼主在6楼的图的细节吗?是串口助手出错了,楼主换一个。
回复

使用道具 举报

11#
ID:705846 发表于 2024-5-8 21:24 来自触屏版 | 只看该作者
Hephaestus 发表于 2024-5-8 20:49
你们都没看楼主在6楼的图的细节吗?是串口助手出错了,楼主换一个。

你的意思是换一个助手程序?
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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