WCH沁恒单片机
直播中

陈超

7年用户 952经验值
私信 关注
[问答]

CH573死机是为什么?如何解决?

int main()
{
    SetSysClock( CLK_SOURCE_PLL_60MHz );
    GPIOA_ModeCfg(GPIO_Pin_All,GPIO_ModeIN_Floating);
    GPIOB_ModeCfg(GPIO_Pin_All,GPIO_ModeIN_Floating);


    WWDG_SetCounter(0x0);
    WWDG_ResetCfg(ENABLE);


#ifdef DEBUG
    GPIOA_SetBits( bTXD1 );
    GPIOA_ModeCfg( bTXD1, GPIO_ModeOut_PP_5mA );
    UART1_DefInit( );
#endif
    PRINT("sn");
    {
        //PRINT("%sn",VER_LIB);
    }
   
    WWDG_SetCounter(0x0);


    CH57X_BLEInit( );
    RF_RoleInit( );
    rf_init();


    RF_Tx( TX_DATA,TX_DATA_SIZE, 0x02, 0xFF );
    RF_Tx( TX_DATA,TX_DATA_SIZE, 0x02, 0xFF );
    RF_Tx( TX_DATA,TX_DATA_SIZE, 0x02, 0xFF );


    WWDG_SetCounter(0x0);
    /*while(1){
        DelayMs( 200 );
        RF_Tx( TX_DATA,TX_DATA_SIZE, 0x02, 0xFF );
    }*/




SLEEP:
    PRINT( "en" );
    //PRINT( "shut down mode sleepn" );
    RTC_TMRFunCfg(SEND_PERIOD);
    PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_RTC_WAKE, Edge_ShortDelay );
    DelayUs( 2 );
    LowPower_Shutdown( 0 );                          //全部断电,唤醒后复位


    return 0;
}


用573发送蓝牙每隔4秒数据,持续20来分钟就再也收不到数据。代码里的看门狗功能是后加的,现在正在测试。但是不加看门狗的情况下,会出现单片机死机,接串口线也收不到打印数据。现在很怕是休眠状态下死机,因为573看门狗非独立,依赖系统时钟。如果是RTC死机的话这该怎么办,电池供电的长期用产品

回帖(1)

h1654155275.5950

2022-8-31 10:10:44
把shutdown改成deepsleep
举报

更多回帖

发帖
×
20
完善资料,
赚取积分