OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7420|回复: 11

SIM900a发送短信

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-4-25
在线时间
0 小时
发表于 2013-5-20 12:29:26 | 显示全部楼层 |阅读模式
大家帮我看看。。这个程序为什么不对啊、、、

#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
 

int main(void)
{
u16 times=0;  
Stm32_Clock_Init(9);    /*系统时钟设置;72MHz */
delay_init(72);        /*延时初始化 */
uart_init(72,9600);    /*串口初始化为9600 */  

printf("ati\r"); /*ati初始化sim900模块  */
delay_ms(1000);
printf("ati\r");
delay_ms(1000);
printf("ati\r");
delay_ms(1000);

printf("AT+CMGF=1;\r");
delay_ms(1000);
    printf("AT+CMGF=1;\r");
delay_ms(1000);
printf("AT+CMGS=10086;\r");      
delay_ms(1000);
printf("AT+CMGS=10086;\r");
delay_ms(1000);
printf("TEMP;\r");
delay_ms(1000);
   printf("1A;\r");
delay_ms(1000);

while(1);  
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

9

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-5-7
在线时间
0 小时
发表于 2013-5-20 16:34:20 | 显示全部楼层
printf发送的是字符串,短信结尾的1A是16进制的,所以这样发送短信并没有结束符
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-4-25
在线时间
0 小时
 楼主| 发表于 2013-5-20 17:01:28 | 显示全部楼层
回复【2楼】鹏程万里:
---------------------------------
我现在这个程序能发短信。。但出现的是乱码。。如何解决啊。。
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
char end_char = 0x1a;    
char sms_text[]="tm"; 
int main(void)
{
u16 times=0;  
Stm32_Clock_Init(9);    /*系统时钟设置;72MHz */
delay_init(72);         /*延时初始化 */
uart_init(72,9600);     /*串口初始化为9600 */  

   while(1)
   {
printf("ati\r"); /*ati初始化sim900模块  */
delay_ms(1000);
printf("ati\r");
delay_ms(1000);
printf("ati\r");
delay_ms(1000);

printf("AT+CMGF=1\r");               /*选择短信消息格式为文本模式(非中文)*/
delay_ms(3000);
printf("AT+CSCS=\"GSM\"\r");       /*设置选择TE字符集为GSM7位默认字符*/
delay_ms(3000);
printf("AT+CSMP=17,167,0,250\r");   /*设置短信模式(手机自动保存模式)*/
delay_ms(3000);
printf("AT+CMGS=\"10086\"\r");  /*填入接收短信的目标号码*/
delay_ms(3000);
printf(sms_text);   /*短信内容*/
puts(&end_char);   /*短信内容后加“0x1a”结尾,以16进制发送*/

for(times=0;times<20;times++)   /*延时20秒*/
{
delay_ms(1000);
}
 
}

}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-20 17:57:15 | 显示全部楼层
\r\n才对吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-4-25
在线时间
0 小时
 楼主| 发表于 2013-5-20 18:54:35 | 显示全部楼层
不加\n也能实现。。就是短信内容,发送到目标手机上,显示的是乱码。。只有第一个才是对的,或者只发送一个数字或字母。。
回复 支持 反对

使用道具 举报

23

主题

292

帖子

0

精华

高级会员

Rank: 4

积分
501
金钱
501
注册时间
2013-9-17
在线时间
17 小时
发表于 2014-1-3 17:11:49 | 显示全部楼层
回复【5楼】wf131410000:
---------------------------------
你那个 delay_ms(3000);  可以?
闷鱼闷闷不乐吃焖鱼
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2014-3-3
在线时间
0 小时
发表于 2014-3-7 11:17:52 | 显示全部楼层
回复【3楼】wf131410000:
---------------------------------
为什么我用的跟你的代码一样,但是发不了短信呢
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-3-15
在线时间
0 小时
发表于 2014-3-15 22:06:12 | 显示全部楼层
回复【2楼】鹏程万里:
---------------------------------
那这个问题应该怎么解决呢
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-3-15
在线时间
0 小时
发表于 2014-3-15 22:09:28 | 显示全部楼层
回复【2楼】鹏程万里:
---------------------------------
我也是出现了类似的问题,不知道怎么解决。用的是c#编的串口程序,有点小问题,就是最后的结束符问题。不知道该怎么办?能帮我参考下吗?留个邮箱吧
1850900431@qq.com。请联系我
回复 支持 反对

使用道具 举报

16

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2013-12-21
在线时间
8 小时
发表于 2015-3-26 17:53:04 | 显示全部楼层
我也是发不了短信,单拨电话可以
回复 支持 反对

使用道具 举报

16

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2013-12-21
在线时间
8 小时
发表于 2015-3-26 17:57:26 | 显示全部楼层
短信内容要加'>'
回复 支持 反对

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-5-28
在线时间
0 小时
发表于 2015-5-29 11:00:19 | 显示全部楼层
回复【3楼】wf131410000:
---------------------------------
我想问下,这里的系统时钟一定要设置吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-28 23:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表