CH573RTC
代码参考:
#include "CH57x_common.h" void DebugInit(void) { GPIOA_SetBits(GPIO_Pin_9); GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA); UART1_DefInit(); } int main() { SetSysClock(CLK_SOURCE_PLL_60MHz); GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD); GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD); DebugInit(); PRINT("Start @ChipID=%02x\n", R8_CHIP_ID); DelayMs(200); LClk32K_Select(Clk32K_LSI); R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1; R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2; R8_CK32K_CONFIG &= ~RB_CLK_XT32K_PON; R8_SAFE_ACCESS_SIG = 0; { RTC_InitTime(2024,1,1,0,0,0); // RTC_TMRFunCfg(Period_1_S); //两种唤醒方式:定时功能、触发功能。这里是使用的定时唤醒,相应参数库已经封装好,可根据需求调用。注意清除对应的标志。 RTC_TRIGFunCfg(32768*2);//两种唤醒方式:定时功能、触发功能。这里是使用的触发唤醒,单位是32768,代表1S。注意清除对应的标志。注意:使用触发需要在中断里面再触发一次。 PFIC_EnableIRQ(RTC_IRQn); //开启RTC使能 PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_RTC_WAKE, Edge_LongDelay ); } /* 配置唤醒源为 GPIO - PA5 */ GPIOA_ModeCfg(GPIO_Pin_10, GPIO_ModeIN_PU); GPIOA_ITModeCfg(GPIO_Pin_10, GPIO_ITMode_FallEdge); // 下降沿唤醒 PFIC_EnableIRQ(GPIO_A_IRQn); PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Edge_LongDelay); PRINT("sleep mode sleep \n"); DelayMs(2); while(1){ LowPower_Sleep(RB_PWR_RAM16K | RB_PWR_RAM2K | RB_PWR_EXTEND | RB_PWR_XROM); //只保留14+2K SRAM 供电 HSECFG_Current(HSE_RCur_100); DelayMs(2); } } __attribute__((interrupt("WCH-Interrupt-fast"))) __attribute__((section(".highcode"))) void GPIOA_IRQHandler(void) { printf("GPIO IRQ\n"); GPIOA_ClearITFlagBit(GPIO_Pin_10); } __attribute__((interrupt("WCH-Interrupt-fast"))) __attribute__((section(".highcode"))) void RTC_IRQHandler(void) { SetSysClock(CLK_SOURCE_PLL_60MHz); mDelaymS(3); UINT16 py; UINT16 pmon; UINT16 pd; UINT16 ph; UINT16 pm; UINT16 ps; RTC_GetTime(&py,&pmon,&pd,&ph,&pm,&ps); if (RTC_GetITFlag(RTC_TRIG_EVENT)) { printf("%d年%d月%d日%d时%d分%d秒\r\n",py,pmon,pd,ph,pm,ps); RTC_ClearITFlag(RTC_TRIG_EVENT); RTC_TRIGFunCfg(32768*2); //触发模式需要再次触发 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!