完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
// UART1_Reset();
// R8_UART1_MCR = 0; // R8_UART1_IER = 0; // R8_UART1_IIR = 1; // R8_UART1_LCR = 0; // R8_UART1_LSR = 0x60; GPIOA_ModeCfg(GPIO_Pin_8,GPIO_ModeIN_PU); GPIOA_ITModeCfg(GPIO_Pin_8,GPIO_ITMode_FallEdge);//PA8 串口唤醒 PFIC_EnableIRQ(GPIO_A_IRQn); PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE, Edge_LongDelay );//唤醒源 DelayMs( 2 ); LowPower_Sleep( RB_PWR_RAM16K | RB_PWR_RAM2K ); //只保留14+2K SRAM 供电 HSECFG_Current( HSE_RCur_100 ); // 降为额定电流(低功耗函数中提升了HSE偏置电流) 这是睡眠配置,睡眠前把串口设置成外io唤醒 这是启动的时候配置的串口, 能用, 但唤醒后重新调用, 就出现死机现象了 void Uart1_Ble_Init(void) { UART1_Reset();//串口复位 GPIOA_SetBits(bTXD1); GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA); GPIOA_ModeCfg(bRXD1, GPIO_ModeIN_PU); UART1_DefInit( ); UART1_ByteTrigCfg( UART_1BYTE_TRIG );//UART_1BYTE_TRIG,UART_7BYTE_TRIG UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT ); PFIC_EnableIRQ( UART1_IRQn ); } 这是串口中断 void GPIOA_IRQHandler(void) { GPIOA_irqFlag = GPIOA_ReadITFlagPort(); if(GPIOA_irqFlag & GPIO_Pin_8){//chuankou GPIOA_ClearITFlagBit(GPIO_Pin_8); PFIC_DisableIRQ(GPIO_A_IRQn); } } 死机不知道死在哪, 不方便debug, 问题有可能出在哪? |
|
相关推荐
1个回答
|
|
唤醒后要关闭GPIO中断,关闭GPIO唤醒,然后重新设置IO,再初始化串口
|
|
|
|
只有小组成员才能发言,加入小组>>
522 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2904 浏览 2 评论
2400 浏览 1 评论
870浏览 2评论
688浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
418浏览 1评论
525浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
814浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 07:03 , Processed in 1.376171 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号