单片机向串口调试助手发送数据 c语言

2024-12-26 21:51:34
推荐回答(1个)
回答1:

uchar idata SystemBuf[10];  //用于接收
uchar Rx=0;                      //接收数据条数
uchar code AT[]="YES,IT IS";
void UART_init (void)
{
 TMOD=0x20;//用定时器1 
     PCON=0x00;  //波特率不加倍   
   SCON=0x50;//串行方式1
     TH1=0xFD;//9600
     TL1=0xFD;//    
     EA=1;//
     ES=1;//
     TR1=1;
  }
void sendchar(uchar ch)  //串口送一个字节
{
    SBUF=ch;
while(TI==0);
TI=0;
}
void sendstring(uchar *p)   //送字符串
{
  
  while(*p)
  {
  sendchar(*p);
  p++;
}
 }
///////
void receive(void) interrupt 4 using 1   //中断
{
  
 if(RI)
{
   
  if(Rx<10)                      //这儿最多收10个字节
  {
  SystemBuf[Rx]=SBUF;
  Rx++;
  }
  
  RI=0;
 }
 }
///
void main()
{
    uchar  i;
     UART_init();
while(1)
      {
          if(SystemBuf=='S')
              {
                 sendstring(AT);
                 for(i=0;i<10;i++)          //接收清0
                 {
                       SystemBuf[i]=0;
                 }
               Rx=0;
             }
     }
}