适用于SIM900A的指令:

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

AT+CSQ 该指令用于查询信号质量,返回 SIM900A 模块的接收信号强度,如返回+CSQ:30,0,表示信号强度是 30 (最大有效值是 31)。

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

AT+CNUM, 查询模块号码。
拨打电话:ATD+号码+;(分号必须加!!!)
ATA,用于应答电话,当收到来电的时候,给模块发送: ATA,即可接听来电。 ATH,用于挂断电话,要想结束正在进行的通话,只需 给模块发送: ATH,即可挂断。
接听电话:AT+CLIP=1,开启来电显示功能。

短信的读取与发送:AT+CMGF=1,即可设置为文本模式。AT+CSCS,用于设置 TE 字符集,默认的为 GSM7 位缺省字符集
AT+CPMS?可以查询当前 SIM 卡最大支持多少条短信存储,以及当前存储了多少条短信。

首先,发送: AT+CMGF=1,设置为文本模式。
然后,发送: AT+CSMP=17,167,2,25,设 置文本模式参数。
最后发送: AT+CSCS=“UCS2”,设置为 UCS2 编码字符集。
此时,我们便可 以发送 AT+CMGS 指令来发送中英文短信了,不过由于使用了 UCS2 字符集,所有字符/数字/ 汉字,都必须使用 UNICODE 编码。

汉字 UNICODE 互换工具.exe
发送指令: AT+CMGS="UNICODE转换后的手机号"
模块返回: >
需要发送的内容:UNICODE 编码
在发送完内容以后,最后以十六进制(HEX)格式单独发送(不用添加回车): 1A(即0X1A)

sim900a.c

#include "sim900a.h"
#include "usart.h"extern uint8_t Uart1_Rx_Cnt;
extern char RxBuffer2[256]; uint8_t ByteSend=0x1A;//短信发送//发送指令
void Sim900A_SendAtCmd(char* pCmd)
{char c;while(*pCmd!='\0'){c = *pCmd;HAL_UART_Transmit(&huart1, (uint8_t *)&c, 1,0xFFFF);pCmd++;}
}//常规指令
void Sim900A_SendAT(void)
{Sim900A_SendAtCmd("AT+CPIN?\r\n");//查询 SIM 卡的状态HAL_Delay(1000);Sim900A_SendAtCmd("AT+CSQ\r\n");//查询信号质量HAL_Delay(1000);Sim900A_SendAtCmd("AT+COPS?\r\n");//查询当前运营商HAL_Delay(1000);
}//拨打电话
void Sim900A_SendMsg1(void)
{Sim900A_SendAtCmd("ATD+\"*********\";\r\n");//电话号码的unicode码HAL_Delay(1000);
}//发送短信
void Sim900A_SendMsg2(char* pSam)
{Sim900A_SendAtCmd("AT+CMGF=1\r\n");//设置为文本模式HAL_Delay(1000);Sim900A_SendAtCmd("AT+CSMP=17,167,2,25\r\n");//设置文本模式参数HAL_Delay(1000);Sim900A_SendAtCmd("AT+CSCS=\"UCS2\"\r\n");//设置为 UCS2 编码字符集HAL_Delay(1000);Sim900A_SendAtCmd("AT+CMGS=\"*********\"\r\n");//电话号码的unicode码HAL_Delay(1000);Sim900A_SendAtCmd(pSam);//发送短信内容unicode码HAL_Delay(1000);HAL_UART_Transmit(&huart1, &ByteSend, 1,0xFFFF);
}

sim900a.h

/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __SIM900A_H__
#define __SIM900A_H__#ifdef __cplusplus
extern "C" {
#endif/* Includes ------------------------------------------------------------------*/
#include "main.h"/* USER CODE BEGIN Includes *//* USER CODE END Includes *//* USER CODE BEGIN Private defines *//* USER CODE END Private defines */
//u8 sim900a_send_cmd(u8 *cmd, u8 *ack, u16 waittime);
//u8* sim900a_check_cmd(u8 *str);
//u8 sim900a_check_status();
//u8 sim900a_sms_test(u8* msisdn);/* USER CODE BEGIN Prototypes */void Sim900A_SendAtCmd(char* pCmd);//发送指令
void Sim900A_SendAT(void);
void Sim900A_SendMsg1(void);
void Sim900A_SendMsg2(char* pSam);/* USER CODE END Prototypes */#ifdef __cplusplus
}
#endif
#endif /*__ SIM900A_H__ */

STM32F103—有关SIM900A模块的使用相关推荐

  1. SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息

    SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息 1. SIM900A模块介绍 1.1 SIM900A模块具有以下特点: 1.2 模块TTL接口图 1.3 硬件连接方法 2. O ...

  2. 基于android的手机位置系统,基于Android和SIM900A模块的位置实时监控系统的设计与实现...

    Design and implementation of real-time location monitoring system based on Android and SIM900A modul ...

  3. Stm32f103的can模块配置和调试

    起因: 库版本不一致,网上找到的都是早期的函数调用,一些函数接口都不一样,现在重新写一份调试文档 条件: Mcu:stm32f103c8t6 Cube调用的库:STM32Cube_FW_F1_V1.8 ...

  4. STM32F103超声波HCSR04模块串口输出距离(附代码)

    1. 接线 VCC-5V; GDN-GND; TRIG-PB6; ECOH-PB9 也可自行选择不冲突引脚 2. 代码部分 csb.c //.c文件 #include "delay.h&qu ...

  5. 基于STM32F103+AS608指纹模块+4X4矩阵按键+SIM900A发短信——智能门禁卡系统

    STM32F103-智能门禁卡系统 1.基本介绍 1.用到硬件 2.功能介绍 2.代码 指纹模块 SIM900A模块 矩阵按键 主程序 项目展示 验证密码开锁演示 指纹验证开锁演示 添加指纹演示 删除 ...

  6. GPRS模块(sim900a)联网(PC)测试失败篇

    打算用移动给树莓派联网,进行远程通信的,手头上正好有GPRS模块尝试一下: 1.模块的串口调试(PC上) SIM900A 模块采用串口(UART)通信,且都含有TTL 接口(还有RS232接口的亦可调 ...

  7. GSM sim900a mini模块用法

    目录 使用要点: 现有如下资料例程 模块图片 USB转串口连接900a 与串口连接 1 AT 指令简介 常用AT指令 读取短信: 发送短信 常用AT指令 2 拨打/接听电话 短信的读取与发送 英文短信 ...

  8. GPRS模块(SIM900A)在QT下的通信例程

    目录 一.SIM900A 二.硬件连线 三.指令解析 四.QT调试程序说明 五.源码 一.SIM900A SIM900A模块为2G模块,采用UART串口通信,含有TTL接口,支持拨打电话.收发短信等日 ...

  9. Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所构成的室内安全报警模块

    该系统模块主要由Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所组成,MQ-2烟雾浓度传感器 ...

  10. STM32F103 SPI 主机模式分析

    STM32F103的SPI模块,跟通用SPI芯片的工作模式有些区别,手册上也没有特别注明,所以光看手册有时候还不容易理解. STM32上的不同之处在于SPI模块工作在主机模式时,模块内部有一个控制脚必 ...

最新文章

  1. MIT-THU未来城市创新网络即将和你见面!
  2. 未能使用“Csc”任务的输入参数初始化该任务
  3. 在SAP云平台测试帐号中启用Kyma运行环境
  4. 使用iometer测试
  5. Dubbo(十一)dubbo的超时重试配置以及启动检查
  6. Laravel测试驱动开发 -- 正向单元测试
  7. 计划会议要开始了,产品负责人却没来…
  8. 和慧眼显示服务器网关错误,R680G7联想万全慧眼IV高级版用户指南2.pdf
  9. JavaScript数据类型之Boolean以及undefined和null(4)
  10. 从支付架构到风控报警,支付系统的设计如何环环相扣?
  11. 个人博客系统中的评论功能设计
  12. 同步,异步,直流电机原理
  13. 如何把小程序游戏运行到自有app中?
  14. https://wenku.baidu.com/view/24def725e53a580217fcf
  15. Netscape与IE的浏览器之争
  16. python 导入第三方包_Python第三方包的导入
  17. Android集成友盟第三方登录
  18. 设计模式日常学习(四)
  19. LVS负载均衡群集 --NAT模式实战部署(图文详解)
  20. 开源堡垒机jump server

热门文章

  1. 模拟、数字基带/频带通信系统:编码、信源/信道编码、调制、码间串扰
  2. 2. 大数据感知与获取
  3. 筛选中很容易粘贴到被隐藏部分_excel复制粘贴:如何将数据粘贴到筛选区域中?...
  4. 【机器人算法】机器人动力学参数辨识
  5. android真机调试工具,ADB 安卓真机调试工具
  6. X5之position_estimator_inav_main.c
  7. c语言报告 列主元lu分解,列主元LU分解法 C++程序
  8. C语言中图形题,c语言图形输出习题.doc
  9. ADC、DAC等混合信号器件的AGND和DGND要不要分开接地
  10. python 实现粒子滤波