BZLDBCSH 2022-08-28 10:27 采纳率: 33.3%
浏览 39
已结题

单片机串口通信中的字符串输出问题

为什么串口通信中不用while(TI)输出的字符串就会出现输出字符串乱码

# include "reg52.h"
# include "intrins.h"

sfr AUXR = 0x8e;

void UartInit()
{
    SCON |= 0x50;
    PCON &= 0x00;
    AUXR |= 0x01;
    
    TMOD |= 0x20;
    
    TL1 = 0xFD;
    TH1 = 0xFD;
    
    TCON = 0x40;    
}

void Delay1000ms()        //@11.0592MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 43;
    j = 6;
    k = 203;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}




void startputzifuchuan(char *str)
{
    while(*str != '\0')
    {
        SBUF = *str;
        while(!TI);
        TI = 0;
        ++str;
}
}
void main()
{
    UartInit();
    while(1)
    {
        Delay1000ms();
        startputzifuchuan("hello word\r\n");
}
}

img

# include "reg52.h"
# include "intrins.h"

sfr AUXR = 0x8e;

void UartInit()
{
    SCON |= 0x50;
    PCON &= 0x00;
    AUXR |= 0x01;
    
    TMOD |= 0x20;
    
    TL1 = 0xFD;
    TH1 = 0xFD;
    
    TCON = 0x40;    
}

void Delay1000ms()        //@11.0592MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 43;
    j = 6;
    k = 203;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}




void startputzifuchuan(char *str)
{
    while(*str != '\0')
    {
        SBUF = *str;
        ++str;
}
}
void main()
{
    UartInit();
    while(1)
    {
        Delay1000ms();
        startputzifuchuan("hello word\r\n");
}
}

img

  • 写回答

1条回答 默认 最新

  • qllaoda 2022-08-28 10:43
    关注

    TI是发送完成标志,你不等待前面发完就往串口里塞新的数据,当然就乱了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 创建了问题 8月28日

悬赏问题

  • ¥15 AttributeError: 'NoneType' object has no attribute 'drop_duplicates'报错
  • ¥15 编写c++计算器,用类和栈来做,要求如下
  • ¥15 以下代码,运行结果报错
  • ¥15 Vivado仿真数据出错
  • ¥15 银河麒麟不支持vant等前端框架怎么办?
  • ¥15 vue3的子组件在父页面调用不显示不生效问题
  • ¥15 cadence PEX
  • ¥15 phython创建了文件 显示在项目下面,但运行不了,运行时还是运行main文件,并且说main文件不允许并行运行
  • ¥20 C++哈希表的设计构造哈希表
  • ¥15 FutureWarning:不推荐使用空或全 NA 条目的 DataFrame 串联行为。怎么改呢?