51單片機(jī)控制TC35 之發(fā)送TEXT短信——MADE BY lyq
#include
#include "1602.h"
#include "uart.c"
#include "tc35.c"
//#define RsBuf_N 50
//char RsBuf[RsBuf_N]; //定義串口接收數(shù)據(jù)緩沖區(qū)
//uchar RsPoint=0;
uchar code PhoneNO[]= "+8615900000000";//改了
uchar code Text[]= "I love SDNU";
uchar code center[]="+8613800531500";
void main()
{
TC35_init();
Uart_init();
init_1602();
Send_AT();
Set_MODE(1); //設(shè)置短消息模式
Set_CENTER(center); // 設(shè)置短消息中心 AT+CSCA=“+8613800531500”回車(chē)
TransmitText(PhoneNO,Text);
while(1);
//lcd_disp_str(RsBuf ,2);
}
/*問(wèn)題:
每次處理完數(shù)據(jù)。RsPoint是怎樣清零的?????在 準(zhǔn)備發(fā)一個(gè)數(shù)據(jù),然后接受一個(gè)數(shù)據(jù) 之前
RsBuf[RsPoint++]=SBUF;
RsBuf[RsPoint]=0x00; //將下一個(gè)數(shù)據(jù)清零
如果這個(gè)發(fā)送沒(méi)問(wèn)題。加刪除,接收函數(shù),參考桌面上的tc35.c
添加液晶菜單的支持 ,類似手機(jī)
*/
========================================================
========================================================
/******************************************************************
函數(shù)名TC35.c
MADE BY lyq
my BLOGhttp://hi.baidu.com/282280072
*******************************************************************/
#include "uart.c"
#include "1602.h"
#include "delay.h"
#define uchar unsigned char
#define uint unsigned int
#define NULL 0
#define ATwaits 10
#define DWWwaits 10
#define Readwaits 10
#define Sendwaits 10
#define RsBuf_N 50
char RsBuf[RsBuf_N]; //定義串口接收數(shù)據(jù)緩沖區(qū)
uchar RsPoint;
void Send_AT(void);
char *mystrstr(char *s, char *t);
void Num2char(uchar i);
/***********************TC35模塊初始化******************************
*功 能: TC35模塊初始化, P0.0輸出低電平至少100ms
*形 參:
*返 回 值:
*備 注:
*****************************************************************/
void TC35_init()
{
P0|=0x01;
P0&=~0x01;
delayms_100ms();delayms_100ms();delayms_100ms();delayms_100ms();
delayms_100ms();delayms_100ms();
P0|=0x01;
delayms_10s();delayms_10s();delayms_10s();
}
/***********************發(fā)送聯(lián)機(jī)指令******************************
*功 能: 串口發(fā)送數(shù)組命令到TC35,"AT",
*形 參:
*返 回 值:
*備 注: 測(cè)試GSM模塊是否連接正確
*****************************************************************/
void Send_AT(void)
{
uchar *p,i=ATwaits; //ATwaits=10
//lcd_disp_str(RsBuf,1);
while(i--) //測(cè)試10次,在某一次成功就退出
{
//RsBuf[0]=