学习SIM900A模块的心得分享

目录

一、硬件的准备

1.外部供电连接方法

2.USB-TLL供电(这里不推荐)

3.单片机控制SIM900A发送短信

二、串口指令介绍

1.发送英文短信指令

2.发送中文短信指令

三、函数介绍

1.printf函数和fputc函数

 2.strstr函数

3.sprintf函数

四、程序的实现原理


一、硬件的准备

首先SIM900A模块必不可少,然后还需要USB转TTL和外界的5v1a电源(用于给模块供电)。其次是一张移动电话卡(因为现在联通电信已经不支持2g)。

1.外部供电连接方法

模块5VR USB-TTL TXD
模块5VT USB-TTL RXD
模块GND USB-TTL GND
模块电源GND 外接电源GND
模块电源VCC 模块电源GND

注意模块的5VR对应的是USB-TTL的TXD (这样才能在串口助手上显示)

2.USB-TLL供电(这里不推荐)

不知道是我的usbttl原因还是其他原因 会出现1a发不出去的情况

连接方法:就是将上图中的白线去掉 黄绿两线接到USB-TTL上 绿线取代白线GND

3.单片机控制SIM900A发送短信

这里需要使用单片机的串口进行控制 我选择了串口一(发送工作过程信息)和串口三(发送指令)。

单片机 PB10 — 模块 5VR
单片机 PB11 — 模块 5VT 
单片机 GND  — 模块 GND
模块的 VCC 接入 电源5V
模块的 GND 接入电源地

二、串口指令介绍

1, AT+CPIN?

该指令用于查询 SIM 卡的状态,主要是 PIN 码,如果该指令返回:+CPIN:READY,则表明 SIM 卡状态正常,返回其他值,则有可能是没有 SIM 卡。

2, AT+CSQ

该指令用于查询信号质量,返回 SIM900A 模块的接收信号强度,如返回:+CSQ: 24,0,表示信号强度是 24(最大有效值是 31)。如果信号强度过低,则要检查天线是否接好了?

3, AT+COPS?

该指令用于查询当前运营商,该指令只有在连上网络后,才返回运营商,否则返回空,如返回:+COPS:0,0, "CHINA MOBILE",表示当前选择的运营商是中国移动。

1.发送英文短信指令

AT+CSCS="GSM"
AT+CMGF=1
AT+CMGS="132******63"  //手机号码
>okokok                //信息内容
1A(勾选串口助手的16进制发送)

前四个需要勾选发送新行

2.发送中文短信指令


AT+CMGF=1
AT+CSCS="UCS2"
AT+CSMP=17,167,0,8          //表示普通文本模式
AT+CMGS="手机号码的Unicode编码"  
> 短信内容Unicode编码       //短信内容
1A              //表示发送

三、函数介绍

1.printf函数和fputc函数

要想实现printf发送到对应的串口中就需要修改fptuc函数

 2.strstr函数

strstr 函数原型: char * strstr(char * str1,char * str2);

功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置)找不到就返回空指针(就是 null)。
————————————————
版权声明:本文为CSDN博主「leeonfield」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013298384/article/details/24839727

3.sprintf函数

sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕。

将电话号码融入到这个指令字符串中给disbuf。

四、程序的实现原理

主要通过串口函数

 的拓展进行输出字符串指令。

 可以向串口发送字符串。


在此特别感谢博主 大屁桃

对我的指点

物联沃分享整理
物联沃-IOTWORD物联网 » 学习SIM900A模块的心得分享

发表评论