串口通信程序为何只能发送接受2位?

2019-03-24 19:01发布

#include <reg52.h>typedef   unsigned char  uint32;typedef   unsigned int   uint16;uint32 num = 0; void UART_init(void) /** UART初始化函数, 波特率:9600*/{     SCON = 0x50;//同例1       TMOD = 0x20;       TH1  = 0xFD;       TL1  = 0xFD;       TR1  = 1;       ES = 1; //中断使能打开       EA  = 1; }main(){     UART_init();//调用特殊功能寄存器初始化函数       while(1);}//等待,void interrupt_uart() interrupt 4 {    if(TI)// 发送中断标志TI,发送完,该位由硬件置1       {     TI = 0;//发清零              REN = 1;}//发送完允许接受,        if(RI)//接受进中断,该位由硬件置1。执行本if       {     RI = 0;//清零              num = SBUF;//把数据取出来              num++;               SBUF = num; //数据发送出去              REN  = 0; } }//发送的时候禁止接受 用串口助手:输入两位加1显示,但是输入1位或2位以上不行? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
jiangqiannian
1楼-- · 2019-03-24 23:10
因为你是以十六进制发送接收的   你把它写成两位啊   6 写成06  多位的话这么写 12 34 。。。。两位两位隔开
wrlsohu
2楼-- · 2019-03-25 01:55
恩 谢谢了

一周热门 更多>