标题: 单片机代码问题为什么串口不停的发送数据? [打印本页]

作者: samxon    时间: 2024-9-12 13:45
标题: 单片机代码问题为什么串口不停的发送数据?
请教大家,本意是只发送一次,为什么串口会不停的发送ca,c5呢。

unsigned char profix[2]={0xCA,0xC5};

void main(){
        UartInit();
        EA=1;

                        //        length = sizeof(profix);
                                UART_SendByte(profix,2);while(1);

}

void UartInit()                //115200bps@11.0592MHz
{
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x01;                //串口1选择定时器2为波特率发生器
        AUXR |= 0x04;                //定时器时钟1T模式
        T2L = 0xE8;                        //设置定时初始值
        T2H = 0xFF;                        //设置定时初始值
        AUXR |= 0x10;                //启动定时器2
        TI        =        0;
        RI        =        0;
        ES        = 1;
}


void Uart() interrupt 4
{
        if(RI)
                {                        
                        RI=0; //清楚TI传送完成标记
                }
}


void UART_SendByte(unsigned char Byte[],length)
{
        unsigned char i;
        for(i=0;i<length;i++)
        {
                SBUF=Byte[ i];                 //一次只能发送8位[ i]
                while(!TI);
                TI = 0;               
        }
}



作者: xiaobendan001    时间: 2024-9-12 16:28
难道是看门狗复位了?
作者: Graves    时间: 2024-9-12 18:28
是不是开了看门狗?然后没清狗一直复位所以一直发
作者: 黄youhui    时间: 2024-9-12 18:46
你加个while循环试试

作者: 188610329    时间: 2024-9-12 19:28
while(1) 呢? 你这反复重起了吧?
作者: samxon    时间: 2024-9-13 07:52
xiaobendan001 发表于 2024-9-12 16:28
难道是看门狗复位了?

没有开狗,加了while(1);就可以了。实际应用中,数据改变一次就发一次是怎么处理的
作者: 人中狼    时间: 2024-9-13 08:23
主程序结构不对,代码跑飞了

作者: xiaobendan001    时间: 2024-9-13 08:39
samxon 发表于 2024-9-13 07:52
没有开狗,加了while(1);就可以了。实际应用中,数据改变一次就发一次是怎么处理的

楼主位的代码不是有while(1);吗?
作者: samxon    时间: 2024-9-13 14:59
xiaobendan001 发表于 2024-9-13 08:39
楼主位的代码不是有while(1);吗?

就是有也会一直发送,不停。
作者: xiaobendan001    时间: 2024-9-13 16:22
samxon 发表于 2024-9-13 14:59
就是有也会一直发送,不停。

那你在哪里又加了一个就不持续了?
作者: peopleapple    时间: 2024-9-18 11:40
没有开狗,加了while(1);就可以了
作者: samxon    时间: 2024-9-18 17:44
xiaobendan001 发表于 2024-9-13 16:22
那你在哪里又加了一个就不持续了?

谢谢,加了发送完毕flag就可以了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1