当前位置:   article > 正文

关于SIM900A模块的学习心得

sim900a模块

目录

一、硬件的准备

1.外部供电连接方法

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

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

二、串口指令介绍

1.发送英文短信指令

2.发送中文短信指令

三、函数介绍

1.printf函数和fputc函数

 2.strstr函数

3.sprintf函数

四、程序的实现原理


一、硬件的准备

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

1.外部供电连接方法

模块5VRUSB-TTL TXD
模块5VTUSB-TTL RXD
模块GNDUSB-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.发送英文短信指令

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

前四个需要勾选发送新行

2.发送中文短信指令

  1. AT+CMGF=1
  2. AT+CSCS="UCS2"
  3. AT+CSMP=17,167,0,8 //表示普通文本模式
  4. AT+CMGS="手机号码的Unicode编码"
  5. > 短信内容Unicode编码 //短信内容
  6. 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。

四、程序的实现原理

主要通过串口函数

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

 可以向串口发送字符串。


在此特别感谢博主 大屁桃

对我的指点

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/280840
推荐阅读
相关标签
  

闽ICP备14008679号