中易网

单片机串口通信程序

答案:2  悬赏:40  
解决时间 2021-04-28 06:05
  • 提问者网友:优雅ぉ小姐
  • 2021-04-27 18:44
STC单片机跟惯性传感器串口通信,传感器三个标识位0x51,0x52,0x53,分别代表加速度数据包角速度数据包和角度数据包。波特率9600,晶振11.0592,该如何配置单片机的串口啊。才能让单片机接收传感器测得的数据然后啊
最佳答案
  • 二级知识专家网友:邪性洒脱
  • 2021-04-27 20:02
串口部分没有对,你好好看看串行口控制器SCON里面RI和TI的用法。TI=1不是启动发送,而是表示发送完毕。一般来说,发送一个数据,可以这样写:

void Send_Char(char p)
 {
SBUF=p;
      while(!TI);
      TI=0;
}
发送一串数据,假设是p[],那么程序代码可以这样写:
void Send_Str(char *p)
{
char i=0;
                while(p[i]!='\0')
{
SBUF=p[i];
      while(!TI);
      TI=0;
      i++;
    }
}
全部回答
  • 1楼网友:夢想黑洞
  • 2021-04-27 20:44
void UartInit(void) //[email protected] { PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 TMOD &= 0x0F; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xFD; //设定定时初值 TH1 = 0xFD; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息