赞
踩
目录
首先SIM900A模块必不可少,然后还需要USB转TTL和外界的5v1a电源(用于给模块供电)。其次是一张移动电话卡(因为现在联通电信已经不支持2g)。
模块5VR | USB-TTL TXD |
模块5VT | USB-TTL RXD |
模块GND | USB-TTL GND |
模块电源GND | 外接电源GND |
模块电源VCC | 模块电源GND |
注意模块的5VR对应的是USB-TTL的TXD (这样才能在串口助手上显示)
不知道是我的usbttl原因还是其他原因 会出现1a发不出去的情况
连接方法:就是将上图中的白线去掉 黄绿两线接到USB-TTL上 绿线取代白线GND
这里需要使用单片机的串口进行控制 我选择了串口一(发送工作过程信息)和串口三(发送指令)。
单片机 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",表示当前选择的运营商是中国移动。
- AT+CSCS="GSM"
- AT+CMGF=1
- AT+CMGS="132******63" //手机号码
- >okokok //信息内容
- 1A(勾选串口助手的16进制发送)
前四个需要勾选发送新行
-
- AT+CMGF=1
- AT+CSCS="UCS2"
- AT+CSMP=17,167,0,8 //表示普通文本模式
- AT+CMGS="手机号码的Unicode编码"
- > 短信内容Unicode编码 //短信内容
- 1A //表示发送
要想实现printf发送到对应的串口中就需要修改fptuc函数
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
sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕。
如
将电话号码融入到这个指令字符串中给disbuf。
主要通过串口函数
的拓展进行输出字符串指令。
如
可以向串口发送字符串。
在此特别感谢博主 大屁桃
对我的指点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。