- 连接上SecureCRT后,通过串口,交互不了AT指令 答:开发板的4G模组关了,长按了PWRKEY(POWERKEY)按键后解决
- AT+CPIN? AT指令注意标点符号 答:比如“” ? ;等,如果不对,会显示ERROR
- 用STRSTR截取content中APN值时,迟迟抓不到有效数据
答:因为ctrl+v过的代码中,包含了空格字符,导致strstr搜索不到,以至于返回null,导致没有返回目标APN的指针位置 - 需求中保存到flash,用的寄存器写法,词不达意
答:更新到Configuration结构体- >APN,烧录后,就是写入flash,因为烧录就是写入到mcu的结构体,基础不牢,理解偏差
// 解析IP地址的算法实现 char *p = strstr(sms_context, "ILIP:"); if (p != NULL) { p += strlen("ILIP:"); char *endp = strchr(p, '\0'); if (endp != NULL) { *endp = '\0'; saveIP(p); } }
配置短信存储地址:AT+CPMS="ME","ME","ME"
删除已读,AT+CMGD=1,2 1里的已发送和已读
读取所有未读短信内容
先at+cmgl读取所有信息,筛选出未读消息,保存未读消息的内容,再执行存储函数,就是setting_set函数 ,先执行获取结构体,再判断其中有无数值变化,再改变后保存数据。
cmgr=1
bug:1.unread count 数量转换有误不到√
2.保存数据
先on_etrace_config_setting_set()————save_device_configs(pconfig)
- pconfig-临时存储配置的指针变量
etrace_init_device_configs_id
以下三个是通用的AT指令函数,稍后理解细品
发短信: ALIP:39.108.72.80,12345 (IP地址,IP端口号)
思路一:(然后调用at_tcp_open函数,传入tcp_ip,tcp_port,timeout=10) ×
思路二:解析出IP地址,IP端口号——想办法存在config的结构体中,ip1和ip1_port中
难点:1.怎么解析出两段想要的数据,优先用分割函数,因为中间有用逗号隔开,strtok
解析出来了,因为配置的是
2.利用on_etrace_config_setting_set()怎么传参进去,能达到配置ip1 ip1port的效果
解答:分别解析出短信中的ip1 addr,ip1 port,然后再利用0x01和0x04的数据格式传入进去,实现config参数的配置,为什么不能一起配置,因为这是两个单读的配置和id,结构体中单独的两项,而AT可以一起配置的原因,是因为以字符串的形式去配置的,所以,要分开来单独配置,要以ip1addr,ip1_port两条专门的判断,分开来,短信也要分开发,等于说做两个函数,逐步判断,或者内嵌一个,一段用来封装成ip一段封装ip_port,分别配置,这样比较合理
注重stelen长度的变化,有问题
公司的卡,apn要对才能上网,ip地址对才能上报
AT+CSIM可以操作; 例子 at+csim=14,"00A4000C027FF0" //选择DF文件 at+csim=14,"00A4000C026F7B" //选择FPLMN文件 at+csim=16,"00D6000003FFFFFF"//清空FPLMN的第一个PLMN at+csim=16,"00D600000364F010"//设置第一个FPLMN为46001
1.验证:LOG 打开,发短信验证是否修改保存了,是否上报√
2.先测试是否有sim卡正常服务,再修改,再验证
at+cops? at+creg?