找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1088|回复: 4
收起左侧

这个单片机程序我接收数据的时候一直输出相同的数据

[复制链接]
ID:1078664 发表于 2023-7-29 20:41 | 显示全部楼层 |阅读模式
void UartInit(void)                //9600bps@11.0592MHz
{
        PCON |= 0x80;                //使能波特率倍速位SMOD
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x40;                //定时器时钟1T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //设置定时器模式
        TMOD |= 0x20;                //设置定时器模式
        TL1 = 0xB8;                //设置定时初始值
        TH1 = 0xB8;                //设置定时重载值
        ET1 = 0;                //禁止定时器%d中断
        TR1 = 1;                //定时器1开始计时
}

void UART_SendByte(u8 Byte)
{
        SBUF=Byte;
        while(TI==0);
        TI=0;
}


void main()
{

   UartInit();
  UART_SendByte(0x05);
}

然后在烧录之后一直在接收05,并不是接受到一个后停止
而且我还没有复位嘞
各位大佬有没有什么解决办法啊

回复

使用道具 举报

ID:213173 发表于 2023-7-29 21:53 | 显示全部楼层
void main()
{
        UartInit();
        UART_SendByte(0x05);
        while(1);
}
回复

使用道具 举报

ID:1078664 发表于 2023-7-30 08:44 | 显示全部楼层
wulin 发表于 2023-7-29 21:53
void main()
{
        UartInit();

试过,这样直接就不输出了,一个05都发不进去
回复

使用道具 举报

ID:1090026 发表于 2023-7-30 12:03 | 显示全部楼层
本帖最后由 AiChiTang 于 2023-7-30 16:06 编辑

u8 flag_a=0;
void UART_SendByte(u8 Byte)
{        if(flag_a==1)
      {
           delay(50000)
      }

        if(flag_a==0 )
        {
          SBUF=Byte;
          while(TI==0);
          TI=0;          flag_a=1;
       }

}

void main()
{
   delay(50000)
   UartInit();
   UART_SendByte(0x05);
}


void Delayms(u16 i)//延时函数i=100延时1ms左右
{
   while(i--);
}

//我感觉这样写应该是只能发一次的,用标志位开了之后就不进去。

/*我觉得WuLin那个改的没问题的,进入死循环之后应该是不工作的,但是不知道为什么不对。有没有可能是最开始发送的时候不稳定,没发出去,因为只发了一次,所以没看到效果。或者先开的发送端,再开的接收端,错过了。我觉得可以先用延时函数看一下。调好之后再把延时函数删了。



回复

使用道具 举报

ID:1090026 发表于 2023-7-30 15:06 | 显示全部楼层
u8 i=0;
void UART_SendByte(u8 Byte)
{

        SBUF=Byte;
        while(TI==0);
        TI=0;
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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