SIM900A模块AT命令手册V1.02

需积分: 16 1 下载量 98 浏览量 更新于2024-07-23 收藏 1.75MB PDF 举报
"SIM900A_AT命令手册V1[1].02.pdf,由SIMCom公司提供,详细介绍了SIM900A模块的AT命令使用,包括版本历史、AT命令概述、相关资料、惯例和术语缩写、AT命令语法等,适用于SIMCom SIM900A模块的开发者和工程师,帮助他们通过AT命令进行模块控制和通信功能的开发与调试。" SIM900A模块是SIMCom公司的一款GSM/GPRS通信模块,广泛应用于各种物联网设备中。该手册V1.02提供了对AT命令的详尽解释,这些命令用于配置和控制SIM900A模块的多种功能,如网络连接、数据传输、语音通话等。 在AT命令概述中,手册阐述了文档的适用范围,即针对SIM900A模块的用户和开发者,帮助他们快速理解和应用AT命令。手册还提到了相关资料,可能包括其他技术文档、测试报告等,以辅助用户进行更深入的学习和开发工作。惯例和术语缩写部分,解释了在AT命令交互中常用的一些符号和术语,以便用户更好地理解命令含义。 AT命令语法部分是手册的核心,它详细讲解了如何构造和发送AT命令。基础类命令涵盖了模块的基本操作,如初始化、查询和设置模块状态。S参数类命令则涉及更具体的模块功能,比如网络注册、数据连接、短信收发等。 版本历史部分记录了手册的更新情况,例如V1.01增加了多个新命令,如AT+CALS(可能与GSM网络同步有关)、AT+CBTE(可能与蓝牙功能相关)、AT+STTONE(可能涉及音频设置)、AT+CIPDPDP(GPRS PDP上下文操作)、AT+CIPUDPMODE(GPRS连接模式设置)、AT+SGPIO(GPIO端口控制)、AT+SPWM(脉宽调制设置)以及AT+ECHO(回显设置)。V1.02版本又新增了AT+CLCC(列出呼叫状态)和AT+CR(可能涉及缓存管理)命令。 手册强调,由于产品迭代和改进,内容可能会定期更新,且用户或系统集成商需负责整体系统的验证。同时,手册内容不构成任何担保,且含有芯讯通无线科技(上海)有限公司的专利技术,未经许可不得复制传播。 SIM900A_AT命令手册V1.02是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 上传