基于STM32 HAL库实现SIM900A短信模块进行短信发送

ps:最近做的一个小项目中用上了GMS短信模块,型号是SIM900A,用来发送短信,因为习惯用HAL库(因为好用、方便),加上在做项目前看了一套便准库中的SIM900A发送短信的代码,感觉挺容易的,无非就是串口发送AT指令,但是后面将其移植到HAL库项目中后就出现各种问题无法发送短信,后面单独开了一个测试工程,最后也是成功了,∴记录一下以免忘记。

一、SIM900A

SIM900A是一款基于GMS/GPRS网络的通信模块,支持语音通话、短信等功能。

1、AT功能测试

将SIM900A模块与CH340正确连接(供电使用5V,SIM900A的Rx与Tx也选择5V的那一排),且插入电话卡(一般都用移动,但是也看到了其他文章说别的运营商的卡也能用,但是博主只有移动卡,还没试过其他的)随后接上电脑的串口助手进行AT指令的操作

(1)AT

检测模块是否正常,成功返回OK (记得勾选发送新行)

(2)AT+CMGF=1

选择消息格式(0:PDU , 1:文本)成功返回OK (记得勾选发送新行)

(3)AT+CSCS="UCS2"

选择字库集,成功返回OK(记得勾选发送新行)

(4)AT+CSCA?

保存SMS设置,成功返回OK(记得勾选发送新行)

(5)AT+CSMP=17,167,0,25

设置消息文本模式,结尾的 ” 25 “可换成其他的,具体的要看手册,成功返回OK(记得勾选发送新行)

(6)AT+CMGS="003x003x003x003x003x003x003x003x003x003x003x"

引号里面的是接收方的电话号码,要转为unicode码,有专门的转码工具,链接放在文章末尾,也可以直接用上面的,只要将号码挨个依次填入 ’ 3 ‘ 后面的 ’ x ‘ 里即可。

成功返回 >**************************************,一堆东西。(记得勾选发送新行)

(7)xxxxxxxxxxxxxxxxxxx

要发生的短信内容,也需要转为unicode码。成功后返回 > ,(然后不要勾选发送新行,顺便把发送16进制的勾选上)

(8)1A

发送十六进制的结束符标志,成功返回OK。短信即可发送成功。

在操作过程中,会有很多情况导致发送完AT指令后返回ERROR,这个时候可以查看一下SIM900A模块的状态指示灯是否正常(电源灯常亮,信号指示灯亮1秒灭3秒,即是正常的)。其他情况均为无法发送短信,具体解决方法可可根据操作手册测试,或者简单粗暴一些,直接重新上电(有时候可以)。

2、使用STM32使用AT指令操作SIM900A发送短信

2.1、硬件连接

为了方便查看STM32发送的指令是否被成功接收,可以将STM32单片机的Tx引脚连接SIM900A模块的Rx引脚,SIM900A的Tx引脚连接CH340的Rx引脚,CH340的USB端连接电脑,并打开串口调试助手,以便查看返回。

2.2、STM32CubeMX配置

ps:本文章使用的是STM32F103C8T6芯片。基础配置就不演示了,正常这些都应该要会的

使用的是串口3,串口波特率注意是115200,随后开启串口中断,最后生成工程。

2.3、串口发送AT指令

2.3.1、C库文件

<
ATK-SIM900A模块介绍: ATK-SIM900A模块是 ALIENTEK推出的一款高性能工业级 GSM/GPRS模块 (开发板),接口丰富,功能完善,尤其适用于需要语言、短信、GPRS数据服务的各种领域。 ATK-SIM900A模块支持RS232串口和 LVTTL串口,并带硬件流控制。支持 5V~24V的超宽工作范围,使得本模块可以非常方便与您产品进行连接,从而给产品提供包括语音、短信和GPRS数据传输等功能。 SIM900A模块资料如截图: SIM900A模块原理图截图: SIM900A模块资料汇总截图: SIM900A模块资料具体说明: 模块原理图:模块原理图和封装 程序源码:此目录包含所有正点原子STM32源码,分函数和寄存器两个版本,请使用与开发板对应的源码即可。 配套软件:包括CH340 USB串口驱动,串口调试助手,汉字Unicode互换工具等开发过程中常用软件 SIM900A模块资料:SIM900A模块自身的一些官方资料 芯片数据手册:模块使用到的芯片的数据手册 SD卡根目录文件:使用正点原子STM32开发板发送中文短信需要把这个文件夹下面内容复制到SD卡根目录 其他参考资料:一些网络资料 DF文件: TK-SIM900A GSM(GPRS)模块用户手册_V1.1.pdf 这个文档非常重要,是模块介绍 ATK-SIM900A模块使用说明_ANxx.pdf 这个文档有几个版本,对应不同开发板。 ATK-SIM900(A)模块DTMF解码功能_AN1415.pdf:DTMF解码功能说明文档 ATK-SIM900(A)模块彩信功能_AN1414.pdf:彩信功能说明文档 ATK-SIM900(A)模块升级说明_AN1413.pdf :模块升级说明文档 ATK-SIM900A GSM模块常见问题汇总_20140805.pdf:这个文档是模块使用过程中常见问题解答。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值