微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > MSPg2553单片机与GSM 模块

MSPg2553单片机与GSM 模块

时间:10-02 整理:3721RD 点击:
这边有一段代码,有一部分(红色标识的)不太清楚,希望有大神能指点一二啦~
  • void   R_S_Byte(uchar R_Byte)
  • {
  •     while((IFG1&UTXIFG0)==0);   //是否上一个串口数据发送完成
  •     TXBUF0=R_Byte;
  • }
  • unsigned  char  printArr(unsigned char*  array,  unsigned  char  len)
  • {
  •   unsigned  char  i=0;
  •   if(array==NULL)
  •     return  PRINTTOOLARGE;
  •   for(i=0;i<len;i++)
  •   {
  •    R_S_Byte(array);
  •   }
  •   return  PRINTSUCCESS;
  • }
  • unsigned  char  printStr(unsigned char*  string)
  • {
  •   unsigned  char  i=0;
  •   if(string==NULL)
  •     return  PRINTNULL;
  •   while(1)
  •   {
  •    R_S_Byte(string);
  •    delay_us(100);
  •    i++;
  •    if(string==0x00)
  •      return  PRINTSUCCESS;
  •    if(i==255)
  •      return  PRINTTOOLARGE;
  •   }
  • }
  • /*接收中断函数,将接收到的字符放在uart_Buf中,收到$表示一条命令接收完成*/  
  • #pragma vector = UART0RX_VECTOR   
  • __interrupt void UART0_RXISR(void)   
  • {   
  •   //LPM3_EXIT;//退出低功耗模式。   
  •   if(finishFlag==0)   
  •   {   
  •     uart_Buf[buf_count]=RXBUF0;   
  •     buf_count++;   
  •     if(uart_Buf[buf_count-1]=='$'||buf_count>=UARTBUFLEN)//实际buffer的可用空间是UARTBUFLEN-1   
  •     {   
  •       buf_count=0;   
  •       finishFlag=1;   
  •       //printStr(uart_Buf);   
  •       //memset(uart_Buf, 0, sizeof(uart_Buf));   
  •     }   
  •   }   
  •       
  • }  

/*接收中断函数,将接收到的字符放在uart_Buf中,收到$表示一条命令接收完成*/  
#pragma vector = UART0RX_VECTOR   //这一句我也不太懂
__interrupt void UART0_RXISR(void)   //中断服务程序入口
{   
  //LPM3_EXIT;//退出低功耗模式。   
  if(finishFlag==0)   //标志位,不用解释了吧
  {   
    uart_Buf[buf_count]=RXBUF0;   //RXBUF0应该是接收数据的缓冲寄存器
    buf_count++;   //计收多少字节的
    if(uart_Buf[buf_count-1]=='$'||buf_count>=UARTBUFLEN)//实际buffer的可用空间是UARTBUFLEN-1                                //收到$,表示对方发送完了
    {   
      buf_count=0;   //计数清零
      finishFlag=1;   //标志位,不用解释了吧
      //printStr(uart_Buf);   
      //memset(uart_Buf, 0, sizeof(uart_Buf));   
    }   
  }   
      
}

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

网站地图

Top