找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 139|回复: 10
打印 上一主题 下一主题
收起左侧

单片机代码问题为什么串口不停的发送数据?

[复制链接]
跳转到指定楼层
楼主
ID:705846 发表于 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;               
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1109793 发表于 2024-9-12 16:28 | 只看该作者
难道是看门狗复位了?
回复

使用道具 举报

板凳
ID:192020 发表于 2024-9-12 18:28 | 只看该作者
是不是开了看门狗?然后没清狗一直复位所以一直发
回复

使用道具 举报

地板
ID:592807 发表于 2024-9-12 18:46 | 只看该作者
你加个while循环试试
回复

使用道具 举报

5#
ID:624769 发表于 2024-9-12 19:28 | 只看该作者
while(1) 呢? 你这反复重起了吧?
回复

使用道具 举报

6#
ID:705846 发表于 2024-9-13 07:52 来自手机 | 只看该作者
xiaobendan001 发表于 2024-9-12 16:28
难道是看门狗复位了?

没有开狗,加了while(1);就可以了。实际应用中,数据改变一次就发一次是怎么处理的
回复

使用道具 举报

7#
ID:384109 发表于 2024-9-13 08:23 | 只看该作者
主程序结构不对,代码跑飞了
回复

使用道具 举报

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

楼主位的代码不是有while(1);吗?
回复

使用道具 举报

9#
ID:705846 发表于 2024-9-13 14:59 | 只看该作者
xiaobendan001 发表于 2024-9-13 08:39
楼主位的代码不是有while(1);吗?

就是有也会一直发送,不停。
回复

使用道具 举报

10#
ID:1109793 发表于 2024-9-13 16:22 | 只看该作者
samxon 发表于 2024-9-13 14:59
就是有也会一直发送,不停。

那你在哪里又加了一个就不持续了?
回复

使用道具 举报

11#
ID:287147 发表于 2024-9-18 11:40 | 只看该作者
没有开狗,加了while(1);就可以了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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