初级会员

- 积分
- 69
- 金钱
- 69
- 注册时间
- 2013-7-3
- 在线时间
- 5 小时
|
发表于 2014-5-6 15:45:00
|
显示全部楼层
最近我在做SIM900短信发送的程序,发送时候设置编码模式没?
AT命令好好看看,都比较简单。
把我这部分代码附上,共同进步。里边也用了很多原子大哥例程里的东西。
void Send_sms(u8 *PhoneNum,u8 Data1)
{
static u8 sms_flag = 0;
TIM_Cmd(TIM3, DISABLE);
if(sms_flag==0)
{
sms_flag=1;
Send_Cmd("AT");
Send_Enter();
delay_ms(400);
Send_Cmd("AT");
Send_Enter();
delay_ms(100);
Send_Cmd("AT+CSCS=");
Send_Data(0x22);
Send_Cmd("GSM");
Send_Data(0x22);
Send_Enter();
delay_ms(1000);
Send_Cmd("AT+CMGF=1");
Send_Enter();
delay_ms(1000);
}
Send_Cmd("AT+CMGS=");
Send_Data(0x22);
Send_Cmd(PhoneNum);
Send_Data(0x22);
Send_Enter();
delay_ms(1000);
//发送数据
Send_Cmd("1#");
Send_Data(sim900a_hex2chr(Data1/0x0f));
Send_Data(sim900a_hex2chr(Data1%0x0f));
//短信结束标志0x1a
Send_Data(0x1a);
delay_ms(500);
TIM_Cmd(TIM3, ENABLE);
}
void Send_Data(u8 Data)
{
USART_SendData(USART1,Data);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);//等待发送结束
}
void Send_Cmd(unsigned char *Cmd)
{
USART_ClearFlag(USART1,USART_FLAG_TC);
while(*Cmd != '\0')
{
USART_SendData(USART1,*Cmd);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);//等待发送结束
Cmd++;
}
} |
|