我发现一些事情如果不及时记录,哪怕过了几天时间再去看就需要想很长时间才能想起来,难道是年龄大的缘故?

关于FM33的ADC

  1. 硬件上对地的采样电阻要并接一个电容

image.png

  1. 如果进入深度休眠需要关闭adc,休眠唤醒后要重新初始化adc,否则会出现基准电压会不准的问题。

    关于无线上传

  2. 如果有定时上传和超时重传两个功能,两个功能一定是互斥的。

    1. //等待应答,超时重传
    2. if(FlagWirelessModuleComm.FlagUploadOnceOver >= 1){
    3. FlagWirelessModuleComm.NoAnswerCount ++;
    4. if(FlagWirelessModuleComm.NoAnswerCount > (10000 / TIMEDELAY)){//上传数据后,10s平台应答
    5. FlagWirelessModuleComm.FlagSend = 1;
    6. FlagWirelessModuleComm.NoAnswerCount = 0;
    7. WirelessCommStep = _TRANSINIT;
    8. WirelessStep = StepWirelessFreshDeviceInfo;
    9. if(FlagWirelessModuleComm.FlagUploadOnceOver >3){//上传3次无应答
    10. WirelessCommStep = _DISCONNECT;
    11. }
    12. }
    13. }
    14. //定时上传
    15. else{
    16. FlagWirelessModuleComm.UploadCount ++;
    17. if(FlagWirelessModuleComm.UploadCount >= FlagWirelessModuleComm.UploadTime){
    18. FlagWirelessModuleComm.UploadCount = 0;
    19. FlagWirelessModuleComm.FlagSend = 1;
    20. WirelessStep = StepWirelessFreshDeviceInfo;
    21. WirelessCommStep = _TRANSINIT;
    22. }
    23. }

    HC32L170JATA+Bootloader+Freertos跳转后中断向量不起作用的解决办法

  3. 在芯片的头文件中添加 #define __VTOR_PRESENT 1,该开关是打开SVB的VTOR

image.png

  1. 整个程序的初始化函数第一步添加中断向量指向即 SCB->VTOR = OTA_APP_A_FLASH_ADDR;image.png