SIM900A V1.05 AT命令手册:新增功能与FTP操作指南

5星 · 超过95%的资源 需积分: 18 107 下载量 182 浏览量 更新于2024-07-24 收藏 2.08MB PDF 举报
SIM900A_AT命令手册_V1.05 是芯讯通无线科技(上海)有限公司针对SIM900A模块发布的一份详细的AT指令集,该手册在V1.05版本中新增了多个功能命令和FTP操作支持,旨在帮助用户轻松理解和利用SIM900A模块进行通信和数据传输。以下是主要内容概述: 1. **手册介绍**: - 手册由SIMCom编写,针对客户需求设计,章节清晰,语言简练,旨在加速开发者基于SIM900A模块的应用开发和系统集成进度。 - SIMCom强调手册作为服务的一部分,但并不负责试验额外信息,且系统验证责任通常由客户或集成商承担。 2. **版权与使用规定**: - 手册包含了芯讯通无线科技的专利技术,未经书面许可,禁止未经授权的摘抄、复制或传播内容,否则将追究法律责任。 - 所有专利、实用新型和外观设计的版权均归SIMCom所有。 3. **版本历史**: - V1.00为初始版本,基于SIM900A模块的AT命令测试报告编写。 - 后续版本V1.01至V1.03新增了如AT+CLCC、AT+CR等命令,以及GPRS提示改进,表明了手册的持续更新和完善。 - 版本V1.05中,特别提到了几个关键命令的增加,如AT+CALS、AT+CBTE、AT+STTONE等,以及FTP相关的AT+CIPDPDP、AT+CIPUDPMODE等,这表明了对网络通信功能的扩展。 4. **功能亮点**: - 增加的AT+SPWM、AT+ECHO和AT+GSMBUSY等命令涉及到PWM控制、回显功能和GSM网络繁忙状态检测,这些都是模块管理的重要组成部分。 - 新增的AT+CIPRXGET、AT+CIPQRCLOSE、AT+CIPSCONT等命令涉及数据接收、连接管理和串口通信,对于实现GPRS数据传输至关重要。 - AT+SAPBR可能与SIM卡应用协议有关,而AT+CIPRXGET和AT+CIPQRCLOSE则可能用于处理IP数据包的接收和关闭。 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 上传