微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请问下这个程序有错么?为什么送到串口显示错误呢?

请问下这个程序有错么?为什么送到串口显示错误呢?

时间:10-02 整理:3721RD 点击:
#include<REG52.H>        
#include<math.h>      
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
void start()
{         TMOD = 0x20;//定时器1工作方式2自动装初值
    SCON = 0x50;//方式1允许接收
    TH1 = 0xFD;//波特率为9600的初值
    TL1 = TH1;
    PCON = 0x00;//电源管理寄存器
    EA = 1;//开总中断
    ES = 1;//开串口中断
    TR1 = 1;//开始计数
}       
void send(uchar a)
{SBUF=a;
while(!TI)
TI=0;
}
void main()
{start();
send(123);
}
就是送个123呀,结果却显示错误

16进制也不是123呀


while(!ti)后面请记住加分号。

点个赞

数据类型不对吧,send函数发送的是uchar型而send(123)实参类型不对

有道理

你的while(!Ti)的后面要加分号吧

123在255以内,是可以的,没有超过数据上限

头文件都是错的

判断是否发送或者接收完成

头文件都没有

小编你确定编译通过了吗…

去掉tr1那句试试

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top