⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 tc35成功模块调试程序.rar
💻 C
字号:
#include <MSP430X44X.h>
#include "TC35.h"
#include "uart.h"
#include "common.h"
char RES_OK[]={'O','K'};
char data[]={"6D4E535759275B66"};//济南大学 Unicode码
 char phonenumber[]={'1','5','8','6','3','7','9','8','0','4','1'};
char nRev_UART0=0;	
int nTX1_Len;
char nRX1_Len;
char nRX1_Len_temp;
int nTX0_Len;
int nRX0_Len;
int nRX0_Len_temp;
char nTX0_Flag;
char nTX1_Flag;
int nSend_TX0=0;
char UART0_TX_BUF[200];	// 串口 0 的发送缓冲区
char UART0_RX_BUF[200];	// 串口 0 的接收缓冲区
      char aa[]={">"};//发送时的响应标志

void main(void)
{

    WDTCTL = WDTPW + WDTHOLD;   // 关闭看门狗    
    P1DIR|=BIT0;
    P1OUT&=~BIT0;
    _DINT();			// 关闭中断
Init_UART0();
//打开中断
    _EINT();
// TC35初始化
 nTX0_Len = ATE(UART0_TX_BUF);
    // 设置中断标志,进入发送中断程序
    IFG1 |= UTXIFG0;
delay(10000);
    nTX0_Len = CMGF(UART0_TX_BUF,0);
    // 设置中断标志,进入发送中断程序
    IFG1 |= UTXIFG0;
 delay(10000);   
    nTX0_Len = CSMP(UART0_TX_BUF,8);
    IFG1 |= UTXIFG0;
 delay(10000);   
sendSms(phonenumber,11,data,8,0);//长度是按一个字节为一个算的
P1OUT|=BIT0;
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt    
}
////////////////////////////////////////
// 处理来自串口 0 的接收中断

    #pragma vector=UART0RX_VECTOR
    __interrupt void UART0_RX_ISR(void)

{
    char chrTemp;
    //接收来自的数据
    UART0_RX_BUF[nRX0_Len_temp] = RXBUF0;	
    
    nRX0_Len_temp += 1;
    
    chrTemp = UART0_RX_BUF[nRX0_Len_temp - 1];
    if((chrTemp == 13) || (chrTemp == 10))
    {
        //接收到一帧信号
        nRX0_Len = nRX0_Len_temp;
        nRev_UART0 = 1;
        nRX0_Len_temp = 0;
    }  
}
////////////////////////////////////////
// 处理来自串口 0 的发送中断

    #pragma vector=UART0TX_VECTOR
    __interrupt void UART0_TX_ISR(void)

{
    if(nTX0_Len != 0)
    {
        // 表示缓冲区里的数据没有发送完
    	nTX0_Flag = 0;				
    	
    	TXBUF0 = UART0_TX_BUF[nSend_TX0];
    	nSend_TX0 += 1;
    	delay(5);
    	if(nSend_TX0 >= nTX0_Len)
    	{
            //数据发送完毕
    	    nSend_TX0 = 0;
    	    nTX0_Len = 0;
    	    nTX0_Flag = 1;
    	}
    }
}
void sendSms(char pPhone[],int phonelen,char pData[],int nLen,int mode)
{
    int i;
    int len1;
    int len2;
    char buf1[10];
    char buf2[100]={0};
    int res;

    if(mode == 1)
    {
        //TEXT模式
        packSms_text(pPhone,phonelen,pData,nLen,
            &len1,&len2,buf1,buf2);
    }
    else
    {
        //PDU模式
        packSms_pdu(pPhone,phonelen,pData,nLen,
            &len1,&len2,buf1,buf2);
    }
    //
    //发送头信息
    for(i = 0;i < len1;i++)
    {
        UART0_TX_BUF[i] = buf1[i];
    }
    //设置发送数据的长度
    nTX0_Len = len1;
    //设置中断标志,进入发送中断程序
    IFG1 |= UTXIFG0;
    //等待 > 响应
    delay(10000);
    while(1)
    {
        //接收到数据
        if(nRev_UART0 == 1)
        {
            for(i = 0;i < nRX0_Len;i++)
            {
                buf1[i] = UART0_RX_BUF[i];
            }
            buf1[i]='\0'; 
            len1 = nRX0_Len;
            nRX0_Len = 0;
            nRev_UART0 = 0;
            break;
        }
    }
    //判断是否是 > 响应
    res = getSendResponse(buf1,aa);
    if(res == 1)
    {   buf2[0]=0x30;
        //发送数据信息
        for(i = 0;i < len2;i++)
        {
            UART0_TX_BUF[i] = buf2[i];
        }
        nTX0_Len = len2;
        //设置中断标志,进入发送中断程序
        IFG1 |= UTXIFG0;
    }
    
    //等待响应
    //接收到数据
    while(1)
    {
        if(nRev_UART0 == 1)
        {
            for(i = 0;i < nRX0_Len;i++)
            {
                buf1[i] = UART0_RX_BUF[i];
            }
            len1 = nRX0_Len;
            nRX0_Len = 0;
            nRev_UART0 = 0;
            break;
        }
    }
    
        
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -