我发现一些事情如果不及时记录,哪怕过了几天时间再去看就需要想很长时间才能想起来,难道是年龄大的缘故?
关于FM33的ADC
- 硬件上对地的采样电阻要并接一个电容
如果进入深度休眠需要关闭adc,休眠唤醒后要重新初始化adc,否则会出现基准电压会不准的问题。
关于无线上传
如果有定时上传和超时重传两个功能,两个功能一定是互斥的。
//等待应答,超时重传
if(FlagWirelessModuleComm.FlagUploadOnceOver >= 1){
FlagWirelessModuleComm.NoAnswerCount ++;
if(FlagWirelessModuleComm.NoAnswerCount > (10000 / TIMEDELAY)){//上传数据后,10s平台应答
FlagWirelessModuleComm.FlagSend = 1;
FlagWirelessModuleComm.NoAnswerCount = 0;
WirelessCommStep = _TRANSINIT;
WirelessStep = StepWirelessFreshDeviceInfo;
if(FlagWirelessModuleComm.FlagUploadOnceOver >3){//上传3次无应答
WirelessCommStep = _DISCONNECT;
}
}
}
//定时上传
else{
FlagWirelessModuleComm.UploadCount ++;
if(FlagWirelessModuleComm.UploadCount >= FlagWirelessModuleComm.UploadTime){
FlagWirelessModuleComm.UploadCount = 0;
FlagWirelessModuleComm.FlagSend = 1;
WirelessStep = StepWirelessFreshDeviceInfo;
WirelessCommStep = _TRANSINIT;
}
}
HC32L170JATA+Bootloader+Freertos跳转后中断向量不起作用的解决办法
在芯片的头文件中添加 #define __VTOR_PRESENT 1,该开关是打开SVB的VTOR
- 整个程序的初始化函数第一步添加中断向量指向即 SCB->VTOR = OTA_APP_A_FLASH_ADDR;