|
请教各位大哥,用单片机控制TC35I发送短消息,我编写了个小程序,用电脑控制挺好使,可用单片机老发不出去短信,特别是发送内容后要同时按下Ctrl和Z键,这在程序里应该怎么表达啊?谢了
我的程序如下:
#include<msp430x14x.h>
#define uint unsigned int
#define uchar unsigned char
//**********函数定义**********//
void main(void); //主函数
void init_UART(void); //串口初始化
void Delay(void); //延时
void Delay1(uint z);
void CMGF(void); //设置发送数据为TXET格式
void CMGS(void); //设置目的手机号码
void SEND(void); //发送字符串
void main(void)
{
init_UART(); //串口初始化
Delay();
CMGF();
Delay1(3000);
CMGS();
Delay1(3000);
SEND();
Delay1(3000);
}
void Delay(void)
{
uint i,j;
for(i=0;i<10;i++)
{
for(j=0;j<1000;j++);
}
}
void Delay1(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init_UART(void); //串口初始化
{
P3DIR |= 0x40;
P3SEL |= 0x40; // P3.4,5选择为UART收发端口
//----------------------初始化UART0---------------------------------------------------------------
ME1 |= UTXE0 + URXE0; // 使能USART0收发
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x06; // 32k/4800 - 6.83
UBR10 = 0x00; //
UMCTL0 = 0x6F; // Modulation
UCTL0 &= ~SWRST; // 初始化UART0状态机
}
void CMGF(void)
{
uchar code mode[10]= {0x41,0x54,0x2B,0x43,0x4D,0x47,0x46,0x3D,0x31,0x0D}; //AT+CMGF=1回车
uint i;
for(i=0;i<10;i++)
{
TXBUF0=mode;
while (!(IFG1 & UTXIFG0));
}
}
void CMGS(void)
{
uchar code mode[20]= {0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D,0x31,0x33,0x30,0x35,0x31,0x36,0x36,0x36,0x34,0x32,0x37,0x0D}; //AT+CMGS=13051666427回车
uint i;
for(i=0;i<20;i++)
{
TXBUF0=mode;
while (!(IFG1 & UTXIFG0));
}
}
void SEND(void) //发送字符串
{
uchar code mode[10]={0x48,0x69,0x21,0x6E,0x69,0x68,0x61,0x6F,0x2E,0x1a}; //hi!nihao.
uint i;
for(i=0;i<10;i++)
{
TXBUF0=mode;
while (!(IFG1 & UTXIFG0));
}
} |
|