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

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

   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日

    悬赏问题

    • ¥15 关于R语言单因素与多因素线性回归的平均值
    • ¥15 服务器清除BIOS之后引导不了
    • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
    • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
    • ¥15 前端预览docx文件,文件从后端传送过来。
    • ¥15 层次聚类和蛋白质相似度
    • ¥25 主成分分析中的第一第二主成分分别代表哪些参数
    • ¥15 oracle数据库查询语句问题
    • ¥15 有没有c++绘制算法的佬们吗救孩一下
    • ¥15 android 蓝牙闪退