1、现象:在做远程升级时,程序从备份区域读取到APP区域并校验成功之后,程序执行到GPRS模块时,始终在执行设置模块的第一句话。
原因分析:原来以为和GPRS模块有关系,后来分析发现程序没有进入串口中断,进而发现是由于没有给串口中断设置偏移量(NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);在中断优先级配置处设置),
总结:发现问题,不要着急,从问题的根源通过串口/LED灯一步一步打印分析。
2、现象:在做远程升级时,串口接收到APP数据之后校验不通过。
分析原因:第一 校验函数不对(传参有错),第二 读取Flash数据时,读的数据个数不对。
总结:写代码时自己挖的坑,冷静。
3、现象:远程控制器项目用GPRS联网MQTT注册不上去
原因分析:通过网络调试助手,让设备连接到本地网络,观察设备发送的注册数据,发现数据最后两个字节不稳定。反推终于发现定义的数组太小。
总结:写代码时没有理解清楚前辈代码的含义,一味模仿。