yuyewsw 发表于 2024-8-17 00:05:43

用库函数开发,串口乱码,头疼2天了,printstring1乱码

         PrintString1("STC GOD\r\n");
//显示超字符串数的乱码

//使用数组
         char Str1="hello";
         PrintString1("Str1");
//则正常打印

STC32G_UART.C文件内
void PrintString1(u8 *putgs)
{
    for (; *putgs != 0;putgs++)    //遇到停止符0结束
    {
      //TX1_write2buff(*putgs);
      SBUF=*putgs;
    COM1.B_TX_busy = 1;   //标志忙
    while(COM1.B_TX_busy);
    }
}
感觉用printstring1("STC")参数是字面字符,就像是没找到停止符,但是也不应该乱码,最起码要显示STC然后接着乱码

布丁橘长 发表于 2024-8-17 02:51:30

可能是波特率没设置好

根据图片提供的代码片段,已在 32G12K128-屠龙刀开发板测试验证通过:


测试代码截图:


测试程序:

DebugLab 发表于 2024-8-17 08:54:10

建议使用vsprintf
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4598

haiyang201 发表于 2024-8-17 11:01:03

本帖最后由 haiyang201 于 2024-8-17 11:02 编辑

不会有乱码啊你是哪里设置不对呢??

yuyewsw 发表于 2024-8-18 05:54:28

haiyang201 发表于 2024-8-17 11:01
不会有乱码啊你是哪里设置不对呢??

主要是用数组就能发出去,printstring1参数里写字符串就不行,我真心不能理解。用它们测试的代码都正常

yuyewsw 发表于 2024-8-18 06:32:03

布丁橘长 发表于 2024-8-17 02:51
可能是波特率没设置好

根据图片提供的代码片段,已在 32G12K128-屠龙刀开发板测试验证通过:


问题解决了,
方法:keil软件中→魔术棒→target→Memory Model:选择→Xsmall

yuyewsw 发表于 2024-8-18 06:32:36

haiyang201 发表于 2024-8-17 11:01
不会有乱码啊你是哪里设置不对呢??

问题解决了,
方法:keil软件中→魔术棒→target→Memory Model:选择→Xsmall

小涵子爸爸 发表于 2024-8-18 09:53:40

同样遇到串口乱码问题
页: [1]
查看完整版本: 用库函数开发,串口乱码,头疼2天了,printstring1乱码