新手入门
- 积分
- 8
- 金钱
- 8
- 注册时间
- 2016-2-11
- 在线时间
- 12 小时
|
8金钱
u8 sim900a_sms_test(u8* msisdn,u8 *MessageContent)
{
u8 status=0;
u8 *p1,*p2;
char cmd[20];
p1=mymalloc(SRAMIN,100);//申请100个字节的内存,用于存放电话号码
p2=mymalloc(SRAMIN,300);//申请300个字节的内存,用于存放短信的unicode字符串
status=sim900a_check_status();
if(status) return status;
if(sim900a_send_cmd("AT+CMGF=1","OK",200))return 4; //设置文本模式
if(sim900a_send_cmd("AT+CSCS=\"UCS2\"","OK",200))return 5;//设置TE字符集为UCS2
printf("n%s\r\n",MessageContent);
sim900a_unigbk_exchange(msisdn,p1,1); //将电话号码转换为unicode字符串
sim900a_unigbk_exchange((u8*)MessageContent,p2,1);//将短信内容转换为unicode字符串.
printf("M%s\r\n",p2);
sprintf((char*)cmd,"AT+CMGS=\"%s\"",p1);//命令格式:AT+CMGS="XXX"
if(sim900a_send_cmd((u8*)cmd,">",200))return 6; //设置短消息文本模式参数
u3_printf("%s",p2);
//发送短信内容到GSM模块
if(sim900a_send_cmd((u8*)0X1A,"+CMGS:",1000)) return 7;//发送结束符
myfree(SRAMIN,p1);
myfree(SRAMIN,p2);
return 0;
}
参照原子哥,给的程序的简易代码,我对此进行修改,想通过传递手机号和短信内容字符串,来实现短信的发送,但是遇到了问题。 发送的短信汉字不能显示 数字能正常显示,我在 汉字转码前,和转码后,进行字符串的打印,发现 GBK码 转汉字码,好像是有点问题。 求大神帮助,如何将双字节汉字,直接转化为unicode 码 ,求顶!!!!!!!!
|
|