SIM900A模块AT命令手册中文版

5星 · 超过95%的资源 需积分: 9 8 下载量 56 浏览量 更新于2024-07-27 收藏 2.1MB PDF 举报
"SIM900A_AT命令手册-中文可复制" SIM900A模块是芯讯通无线科技(上海)有限公司推出的一款GSM/GPRS通信模块,它支持多种AT命令来控制和配置模块的功能。这个AT命令手册是专为SIM900A设计的,版本号为1.05,旨在帮助用户更好地理解和使用这些命令,以便于在开发应用和工程计划中快速集成和调试模块。 手册涵盖了从基本通信设置到高级功能的详细指令,包括但不限于以下知识点: 1. **AT命令基础**:AT命令是远程控制调制解调器的标准命令集,用于设置和查询模块的参数。SIM900A支持的基本AT命令如`AT`用于检查模块是否正常,`ATE0`关闭回显功能等。 2. **网络连接与注册**:通过AT命令,用户可以控制模块连接到GSM网络,如`AT+CGATT`用于GPRS附着与分离,`AT+COPS`用于选择运营商网络。 3. **通话管理**:`AT+CLCC`允许查看当前的呼叫状态,而`ATD`用于拨打电话。 4. **短消息服务(SMS)**:SIM900A支持发送和接收短信,如`AT+CMGF`切换文本模式和PDU模式,`AT+CMGS`用于发送短信,`AT+CMGL`读取存储的短信。 5. **数据传输**:GPRS功能通过`AT+CIPSTART`、`AT+CIPSEND`等命令实现TCP/UDP连接,进行数据传输。`AT+CIPSTATUS`用于查询连接状态。 6. **GPRS连接管理**:`AT+CIPDPDP`、`AT+CIPUDPMODE`分别用于GPRS连接管理和数据包模式设置,确保数据通信的稳定。 7. **硬件控制**:SIM900A还提供了一些硬件接口控制的命令,如`AT+SGPIO`设置GPIO引脚状态,`AT+SPWM`控制PWM输出,`AT+ECHO`开关回显功能。 8. **网络参数设置**:`AT+CSTT`用于设置GPRS接入点名称(APN),`AT+SAPBR`管理PDP上下文,`AT+CIPRXGET`获取接收的数据,`AT+CIPQRCLOSE`关闭特定连接。 9. **电源和状态管理**:`AT+CGREG`跟踪网络注册状态,`AT+CPIN`检查SIM卡PIN码状态,`AT+CFUN`调整模块功能级别。 10. **故障诊断与日志**:通过`AT+CR`命令可以记录模块的运行日志,有助于排查问题。 手册强调,虽然提供了详尽的指导,但客户或系统集成商仍有责任验证整个系统功能,因为SIMCom不承担与附加信息相关的独立测试责任。同时,手册内容可能会随着产品升级而更新,用户需要定期查阅最新版本以获取准确信息。 版权方面,SIMCom保留所有权利,未经许可,禁止非法复制和传播手册内容,否则可能面临法律追责。 SIM900A_AT命令手册是开发人员和工程师的重要参考资料,它详细解释了如何通过AT命令操作SIM900A模块,实现各种通信和控制功能。

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 上传