安信可A6模块短信模式的配置
来源:互联网 发布:淘宝卖的lv是正品吗 编辑:程序博客网 时间:2024/05/17 05:18
安信可A6模块短信模式的配置
前段时间搞了下这个,配置的时候碰到很多问题。
最后上电初始化时是这样配置的
AT //第一条为无效指令,A6模块根据这次数据传输调整波特率AT+GMGD=1,4 //删除存储的所有短信AT+CSMS=0,1,1,1 //选择短消息服务AT+CNMI=2,2,0,1,1 //配置短信接收模式AT+CMGF=1 //设置短信格式为textAT+CSCS="GSM" //设置短信编码用GSMAT+CPMS="SM","SM","SM" //选择短消息内存为SM卡
附上模块程序(STM32F103C8T6)
//gprs_ga6.h#ifndef __GPRS_GA6_H__#define __GPRS_GA6_H__#include "usart.h"#define GPRS_GA6_TRUE 1#define GPRS_GA6_FALSE 0#define GPRS_GA6_NULL 0extern void GPRS_GA6_Init(void);//extern void GPRS_GA6_Recive_Unit(void);//extern int GPRS_GA6_SMSMODE_Loop_Init(u16 time);extern u8 GPRS_GA6_InitComplete_Flag;#endif
//gprs_ga6.c#include "gprs_ga6.h"//A6模块初始化完成标志u8 GPRS_GA6_InitComplete_Flag = GPRS_GA6_FALSE;//送一个字节u8 GPRS_GA6_Send_Byte(u8 data) { USART1_SendData(data); return GPRS_GA6_TRUE;}//送一组字节 '\0'结尾u8 GPRS_GA6_Send(u8* data) { USART1_SendString(data); return GPRS_GA6_TRUE;}//A6接收检查子程序 比较两个byte数组//recive-接收内容 check-比对内容u8 GPRS_GA6_Recive_Check(u8* recive, u8* check) { int i=0; int check_len = 0; int cmp_pos = 0; for (check_len = 0; check_len < USART1_REV_BUFFER_LEN; check_len ++) { if (check[check_len] == '\0') { break; } } if (check_len <= 1) { return GPRS_GA6_TRUE; } for (i=0; i < USART1_REV_BUFFER_LEN; i++) { if (recive[i] == '\0') { break; } if (recive[i] == check[cmp_pos]) { cmp_pos += 1; if (cmp_pos >= check_len) { return GPRS_GA6_TRUE; } } else { cmp_pos = 0; } } if (cmp_pos >= check_len) { return GPRS_GA6_TRUE; } else { return GPRS_GA6_FALSE; }}//A6接收子程序 check-检查比对内容u8 GPRS_GA6_Recive(u8* check) { u8* recive_buf; if (USART1_RevBuffer_Check()) { recive_buf = USART1_RevBuffer_Pop(); if (GPRS_GA6_Recive_Check(recive_buf, check) == GPRS_GA6_TRUE) { return GPRS_GA6_TRUE; } else { return GPRS_GA6_FALSE; } } else { return GPRS_GA6_NULL; }}//A6发送一个命令 并检查返回u8 GPRS_GA6_AT_Cmd(u8* cmd, u8* check) { static int prc = 0; switch (prc) { case 0: if (GPRS_GA6_Send(cmd) == GPRS_GA6_TRUE) { prc = 1; } break; case 1: if (GPRS_GA6_Recive(check) == GPRS_GA6_TRUE) { prc = 2; } break; case 2: prc = 0; return GPRS_GA6_TRUE; default: prc = 0; break; } return GPRS_GA6_FALSE;}//A6短信模式初始化u8 GPRS_GA6_SMSMODE_Init(void) { static int prc = -1; static u16 time = 0; while (1) { switch (prc) { case -1: if (GPRS_GA6_AT_Cmd("AT\r\n", "")) { time = 0; prc = 0; Delay_Nms(1000); } break; case 0: if (GPRS_GA6_AT_Cmd("AT+CMGD=1,4\r\n", "OK")) { prc = 1; time = 0; Delay_Nms(100); } break; case 1: if (GPRS_GA6_AT_Cmd("AT+CSMS=0,1,1,1\r\n", "OK")) { prc ++; time = 0; Delay_Nms(100); } break; case 2: if (GPRS_GA6_AT_Cmd("AT+CNMI=2,2,0,1,1\r\n", "OK")) { prc ++; time = 0; Delay_Nms(100); } break; case 3: if (GPRS_GA6_AT_Cmd("AT+CMGF=1\r\n", "OK")) { prc ++; time = 0; Delay_Nms(100); } break; case 4: if (GPRS_GA6_AT_Cmd("AT+CSCS=\"GSM\"\r\n", "OK")) { prc ++; time = 0; Delay_Nms(100); } break; case 5: if (GPRS_GA6_AT_Cmd("AT+CPMS=\"SM\",\"SM\",\"SM\"\r\n", "OK")) { prc ++; time = 0; GPRS_GA6_InitComplete_Flag = GPRS_GA6_TRUE; Delay_Nms(100); } break; default: prc = -1; return GPRS_GA6_TRUE; } if ((time++) >= 60000) { time = 0; prc = -1; return GPRS_GA6_FALSE; } }}//A6短信模式循环初始化u8 GPRS_GA6_SMSMODE_Loop_Init(u16 time) { u16 i=0; for (i=0; i<time; i++) { if (GPRS_GA6_SMS_Init() == GPRS_GA6_TRUE) { return GPRS_GA6_TRUE; } Delay_Nms(200); } return GPRS_GA6_FALSE;}//A6初始化子程序void GPRS_GA6_Init(void) { USART1_Init(115200); Delay_Nms(500); GPRS_GA6_SMSMODE_Loop_Init(10);}
虽然现在能成功接收短信了,但如果之后新的模块的SDK发生变化那发送的指令可能也会发生变化。
阅读全文
0 0
- 安信可A6模块短信模式的配置
- 腾达A6无线路由器的几种连接模式
- a6
- a6
- 转载 华硕A6的拆解
- 【短信】短信模块的多平台适配
- 短信收发模块TC35i的外围电路设计
- 春笛短信模块的使用说明
- 短信收发模块TC35i的外围电路设计
- 短信模块一些bug的修改
- wifi模块配置sta模式下出现的问题
- wifi模块配置ap模式下出现的问题
- 防火墙模块工作模式配置
- 安信可A7模块实现拨号发短信
- apache中配置php支持模块模式、cgi模式和fastcgi模式的实验
- apache中配置php支持模块模式、cgi模式和fastcgi模式的实验
- apache中配置php支持模块模式、cgi模式和fastcgi模式的实验
- Nginx的配置与部署(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式
- summernote-rails
- 推荐系统
- Android图文混排功能(文字后面追加图片)
- Spring官网下载dist.zip的几种方法
- 开脑洞!哪项黑科技可以让牛郎织女天天过七夕?
- 安信可A6模块短信模式的配置
- Frank-wolfe算法多OD对matlab实现
- 选择排序
- git 发布本地工程到github
- IDEA 代码统计插件 --- Statistic
- 金额和利率正则表达式
- IDEA 常用快捷键
- maven编译错误:Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean
- 利用阿里云服务器windows server 2012 搭建vpn