|
还需要别的代码吗?我贴上
- /*******************************************************************************
- *描 述: 此文件包含操作GSM的所有函数
- *GSM 模块:SIM900A
- *控制芯片:MSP430F149
- *
- *******************************************************************************/
- #include "include.h"
- extern uchar USART1BUFF[];//重新声明一下其他函数中定义的USART1BUFF数组
- extern void UART_Clear_BUFF(void);
- //外部声明过的函数 0 UART1,1 UART2,str为字符串指针
- extern void UART_PutStr(uchar uartx, char *str);
- extern void UART_PutChar(uchar uartx, char ch);
- extern void DelayNms(unsigned char n);
- extern void DelayNs(unsigned char n);
- extern void led(int i);
- extern void GPIO_OUT(uchar px, uchar data8);
- extern void UART_Init(uchar uartx);
- char *ATE0="ATE0\r\n\r\n";//清除GSM模块回显
- /*******************************************************************************
- *SIM900初始化函数
- *
- *返回值:无
- *测试通过时间:2015年1月22日22:58:54
- *******************************************************************************/
- void SIM900(void)
- {
- UART_Clear_BUFF();
- UART_PutStr(0,"AT\r\n\r\n");
- while(strstr((char const*)USART1BUFF,"OK")==NULL)
- {
- UART_Clear_BUFF();
- led(2);
- //注意:此处必须为\R\N\R\N!!!
- UART_PutStr(0,"AT\r\n\r\n");
- }
- GPIO_OUT(P2,0Xf7);//点亮一个LED灯,代表握手成功
- UART_Clear_BUFF();
- UART_PutStr(0,"ATE0\r\n\r\n");
- while(strstr((char const*)USART1BUFF,"OK")==NULL)
- {
- UART_Clear_BUFF();
- led(4);
- //注意:此处必须为\R\N\R\N!!!
- UART_PutStr(0,"ATE0\r\n\r\n");
- }
- GPIO_OUT(P2,0Xfe);//点亮一个LED灯,代表握手成功
- }
复制代码
主程序里面,没有什么东西,就是一个单独的SIM900程序。
- int main( void )
- {
- // Stop watchdog timer to prevent time out reset
- WDTCTL = WDTPW + WDTHOLD;
-
- uchar i;
-
- WDTCTL = WDTPW + WDTHOLD; //关狗
- /*------选择系统主时钟为8MHz-------*/
- BCSCTL1 &= ~XT2OFF; //打开XT2高频晶体振荡器
- do
- {
- IFG1 &= ~OFIFG; //清除晶振失败标志
- for (i = 0xFF; i > 0; i--); //等待8MHz晶体起振
- }
- while ((IFG1 & OFIFG)); //晶振失效标志仍然存在?
- BCSCTL2 |= SELM_2 + SELS; //MCLK和SMCLK选择高频晶振
-
-
- //计数时钟选择SMLK=8MHz,1/8分频后为1MHz
- TACTL |= TASSEL_2 + ID_3;
-
- GPIO_Init(P2,DIR_OUTPUT); //设置P2为输出模式
-
- UART_Init(0);
-
- //打开全局中断
- _EINT();
- //while(1);
-
- /******************************
- 此部分,已调试成功
- 2015年1月22日22:39:52
- while(strstr((char const*)USART1BUFF,"OK")==NULL)
- {
- //uchar ii;
- UART_Clear_BUFF();
- led(2);
- UART_PutStr(0,"ATE0\r\n\r\n");
-
- }
-
-
- ********************************/
- SIM900();
- while(1);
- }
复制代码
|
|