找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1530|回复: 10
收起左侧

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

[复制链接]
ID:705846 发表于 2024-5-7 11:20 | 显示全部楼层 |阅读模式

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


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

        }        

回复

使用道具 举报

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++;       
        }
}
回复

使用道具 举报

ID:705846 发表于 2024-5-7 17:28 | 显示全部楼层
yaosongjin 发表于 2024-5-7 15:36
题主可试下把249改成48,249没在ASCII码范围内

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

使用道具 举报

ID:705846 发表于 2024-5-7 18:03 | 显示全部楼层
12a.JPG
回复

使用道具 举报

ID:192020 发表于 2024-5-8 11:00 | 显示全部楼层

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

使用道具 举报

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

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

使用道具 举报

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'),写个这样的转换函数发送。
回复

使用道具 举报

ID:883242 发表于 2024-5-8 20:49 | 显示全部楼层
你们都没看楼主在6楼的图的细节吗?是串口助手出错了,楼主换一个。
回复

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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