请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

大神们急求助!!!!!STM8L051 active-halt RTC唤醒后

[复制链接]
changchangyuyu 提问时间:2018-10-23 15:25 /
STM8L051 active-halt RTC睡眠唤醒后,为什么一直进不去USART RX接收中断函数INTERRUPT_HANDLER(USART1_RX_TIM5_CC_IRQHandler,28),串口向单片机发送数据一直没反应。
但是在睡眠之前,串口向单片机发送数据就可以进去“USART RX接收中断函数”
问各位大神,是否遇到过,,这种问题,是那块有冲突吗???


INTERRUPT_HANDLER(USART1_RX_TIM5_CC_IRQHandler,28)
{
    /* In order to detect unexpected events during development,
       it is recommended to set a breakpoint on the following instruction.
    */

   USART_ClearITPendingBit (USART1,USART_IT_RXNE);//清中断标志
   USART_SendData8 (USART1,USART_ReceiveData8 (USART1));//将接收到的数据发送出去

   if(USART_ReceiveData8(USART1) !=0)
   {
     RTC_WakeUpCmd(ENABLE);
     GPIO_ResetBits(GPIOD,GPIO_Pin_0);//灯亮
     GPIO_ResetBits (GPIOB,GPIO_Pin_0);//开启 ADS1120
     halt();  //进入ACTIVD-HALT模式
   }

}


收藏 评论2 发布时间:2018-10-23 15:25

举报

2个回答
536715119 回答时间:2018-10-24 16:12:34
休眠时,串口中断是无法唤醒MCU,MCU只能通过外部中断或定时唤醒。怀疑是MCU在休眠中接收到数据。
如果确认MCU是已经唤醒了还是不行,尝试把休眠放到主程序中试试,不要在中断中执行
撑伞少年 回答时间:2018-11-23 10:51:04
方法1:在休眠前设置串口RXD引脚的外部中断,下降沿唤醒,唤醒后马上配置串口进行数据接收;
方法2:采用外部中断加定时器中断通过模拟串口进行接收;
方法1缺点:功耗高,如果串口数据无前导唤醒数据,等待串口配置完成数据较短的话已经发送完成;优点:数据接收稳定准确率高;
方法2缺点:数据接收时应屏蔽其他中断信号,而且尽可能采用波特率较低的数据传输,否则数据接收错误率较高;有点:休眠时可随时唤醒,功耗低。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版