白槐花一枝 2022-03-13 07:57 采纳率: 0%
浏览 93
已结题

串口发送程序连续发送时,重复发送第一个字符。

   if(temp[0]!=48)
    {
      sendchar(temp[0]);
    }
    sendchar(temp[1]);
    sendchar(temp[2]);
    sendchar('.');
    sendchar(temp[3]);
    delay_ms(1);
    sendchar(0x0a);
    sendchar(0x0d);

这是主函数循环里的程序。

void uart_init()
{
TMOD=0X20; //设置计数器工作方式2
SCON=0X50; //设置为工作方式1
//PCON=0X80; //波特率加倍
ES=1; //打开接收中断
EA=1; //打开总中断
TH1=0XFD; //计数器初始值设置
TL1=0XFD;
TR1=1; //打开计数器
}

void sendstr(u8 *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);
TI=0;
str++;

}

}

void sendchar(u8 chr)
{
SBUF=chr;
while(!TI);
TI=0;
}

这是初始化的一些程序

然后运行后是这样:

img

只会重复发送第一个字符。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月21日
    • 创建了问题 3月13日