SIM900A模块AT命令手册中文版V1.02

需积分: 47 24 下载量 197 浏览量 更新于2024-07-29 收藏 1.75MB PDF 举报
"SIM900A_AT命令中文手册V1.02" SIM900A模块是一款由SIMCom公司生产的GSM/GPRS通信模块,适用于各种需要移动通信功能的设备。该模块支持通过AT(Attention)命令进行配置和控制。AT命令是串行通信协议,用于与模块进行交互,执行如网络注册、拨号、数据传输等操作。 在"SIM900A_AT命令中文手册V1.02"中,详细列出了SIM900A模块所支持的全部中文AT命令,使得用户能够更容易理解和使用这些命令。手册内容全面,包括了模块的基本设置、网络连接、通话管理、短消息服务(SMS)、GPRS数据通信等多个方面。 手册的版本历史显示,从V1.00到V1.02,SIMCom公司不断更新和完善了手册内容,增加了新的AT命令,例如: - AT+CLCC:查询当前呼叫状态,可以获取到模块正在进行的呼叫信息。 - AT+CR:这是一个写命令,可能是用于保存配置或者执行某些写入操作。 - AT+CALS:可能涉及模块的音频设置或校准。 - AT+CBTE:可能与蓝牙(Bluetooth)相关,可能是开启或配置蓝牙功能。 - AT+STTONE:可能与音调控制相关,用于设置或控制模块的音调。 - AT+CIPDPDP:与GPRS数据包数据服务(PDP上下文)有关,用于激活或去激活GPRS连接。 - AT+CIPUDPMODE:可能用于设置GPRS数据模式,如透明传输或非透明传输。 - AT+SGPIO:可能涉及对GPIO(通用输入/输出)端口的操作,允许用户控制模块的硬件引脚。 - AT+SPWM:可能与脉宽调制(PWM)相关,用于控制输出信号的占空比。 - AT+ECHO:控制AT命令的回显功能,有助于调试。 手册强调,虽然提供了详细的中文指南,但用户在使用模块时仍需负责整个系统集成的验证,因为SIMCom不承担与附加信息相关的独立测试责任。此外,手册中的信息可能会随着产品更新而变化,且不构成任何担保。 手册的版权信息表明,芯讯通无线科技(上海)有限公司拥有SIM900A模块及相关技术的知识产权,未经许可,禁止复制或传播手册内容。 "SIM900A_AT命令中文手册V1.02"为开发者和工程师提供了一个清晰、详尽的指南,帮助他们更好地利用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 上传