标题: 关于51单片机串口通信的问题 [打印本页]

作者: 164161297    时间: 2020-2-21 10:35
标题: 关于51单片机串口通信的问题
本帖最后由 164161297 于 2020-2-21 10:36 编辑

有一个任务要求用串口助手输入一个字符串,单片机接收到后执行相应动作。但是我不知道怎么接收字符串,我这个程序就是输入m1然后单片机一个LED灯亮,为什么我在串口助手要点四次发送数据才能让它亮?有什么办法点一次就可以吗?
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
  
sbit key_s2 = P3^0;
void UARTInit();
void main()
{
UARTInit();
while(1);
}
void UARTInit()
{
EA = 1;
ES = 1;
REN = 1;
TMOD = 0x20;
TR1 = 1;
SM0 = 0; SM1 = 1;
TH1 = 0xfd;
TL1 = 0xfd;
}
void UART() interrupt 4
{
uchar sz[] = {"m1"};
uchar *a;
if(RI)
{
  RI = 0;
  *a = SBUF;
  while(!RI);
  a++;
  if(strcmp(sz,a)==0)
  {
   P1 = 0xfe;
  }
}
if(TI)
{
  TI = 0;
}
}







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