SIM900A AT命令全面指南 V1.05 - 中文版详解

4星 · 超过85%的资源 需积分: 18 10 下载量 197 浏览量 更新于2024-07-23 收藏 2.08MB PDF 举报
SIM900A_AT命令手册_V1.05 是芯讯通无线科技(上海)有限公司针对SIM900A模块发布的一份详细AT命令手册,该手册旨在帮助客户轻松理解和使用模块,以便快速进行应用开发和工程计划。该版本于2011年10月25日发布,是基于SIM900A模块的AT命令测试报告编写的,后续经过多次更新,如V1.01至V1.03版本,增加了多项新功能和命令。 以下是主要内容概要: 1. **概述**:手册作为客户服务的一部分,提供了清晰的章节结构和简洁的描述,使读者能快速掌握AT指令,提升工作效率。手册强调,虽然SIMCom不负责额外信息的试验,但用户和系统集成商应对包含SIM900A模块的完整系统进行验证。 2. **版权与使用条款**:手册内包含了芯讯通无线科技的专利技术,未经授权,严禁擅自摘抄、复制或传播手册内容。侵犯版权的行为可能会导致赔偿责任,SIMCom保留所有对专利、实用新型和外观设计的版权。 3. **版本历史**:手册从V1.00开始,每版都新增了一些关键命令,如AT+CALS、AT+CBTE、AT+STTONE等,反映了产品的发展和功能扩展。V1.02版增加了如AT+CLCC和AT+CR等新的写命令,以及改进了GPRS提示。 4. **命令列表**:手册详细列出了不同章节下的AT命令及其功能,涵盖了连接控制(如AT+CLCC)、数据通信(如AT+CIPRXGET和AT+CIPQRCLOSE),以及GSM模块状态查询(如AT+GSMBUSY)等,还有用于设置和管理SIM卡、GSM网络和串口通信的命令。 5. **最新特性**:V1.03版进一步增强了AT+SPWM、AT+ECHO和AT+CIPSCONT等命令,以及引入了SAPBR设置(AT+SAPBR)和新功能(如AT+CIPRXGET用于接收数据)。 SIM900A_AT命令手册_V1.05是SIM900A模块开发人员和系统集成工程师的重要参考资料,它提供了丰富的AT指令集,便于理解和实现模块在各种应用场景中的操作和配置。随着产品的更新,手册也持续更新,确保了用户始终拥有最新的指令集和技术支持。

void SIM900A_Init(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE); // 配置USART1的GPIO GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置USART1 USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); // 等待SIM900A模块启动 delay_ms(5000); } void SIM900A_SendCommand(char* command) { while(*command) { USART_SendData(SIM900A_USART, *command++); while(USART_GetFlagStatus(SIM900A_USART, USART_FLAG_TC) == RESET); } } void SIM900A_SendSMS(char* phoneNumber, char* message) { SIM900A_SendCommand("AT+CMGF=1"); // 设置短信格式为文本模式 SIM900A_SendCommand("AT+CMGS=\"+86"); // 设置手机号码 SIM900A_SendCommand(phoneNumber); SIM900A_SendCommand("\""); SIM900A_SendCommand(message); // 发送短信内容 USART_SendData(SIM900A_USART, 0x1A); // 发送Ctrl+Z结束短信 while(USART_GetFlagStatus(SIM900A_USART, USART_FLAG_TC) == RESET); } void SIM900A_SendSMS_Chinese(char* phoneNumber, char* message) { char ucs2Message[200]; u8 i; u8 j; SIM900A_SendCommand("AT+CMGF=0"); // 设置短信格式为PDU模式 SIM900A_SendCommand("AT+CSCS=\"UCS2\""); // 设置字符集为UCS2 SIM900A_SendCommand("AT+CSMP=17,167,0,8"); // 设置短信参数 SIM900A_SendCommand("AT+CMGS=\"+86"); // 设置手机号码 SIM900A_SendCommand(phoneNumber); SIM900A_SendCommand("\""); for(i = 0, j = 0; i < strlen(message); i += 2, j += 4) { sprintf(&ucs2Message[j], "%02X%02X", message[i+1], message[i]); } ucs2Message[j] = '\0'; SIM900A_SendCommand(ucs2Message); // 发送短信内容 USART_SendData(SIM900A_USART, 0x1A); // 发送Ctrl+Z结束短信 while(USART_GetFlagStatus(SIM900A_USART, USART_FLAG_TC) == RESET); }

2023-06-12 上传