OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5057|回复: 4

有大神用过stm32wl系列的SUBGHZ_Radio_IRQn唤醒standby模式吗?最近小弟在开发时遇到了唤不醒的问题

[复制链接]

4

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
金钱
471
注册时间
2019-4-12
在线时间
92 小时
发表于 2023-2-28 14:44:22 | 显示全部楼层 |阅读模式
100金钱
进入函数如下,可能是少了SUBGHZ_Radio的初始化
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);void EnterSTANDBYMode(void){


        __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WRFBUSY);//清除掉已经触发的状态                      

         HAL_PWREx_SetRadioIRQTrigger(PWR_RADIO_BUSY_TRIGGER_WU_IT);
          
          HAL_PWREx_EnablePullUpPullDownConfig();
//   SET_BIT(PWR->CR4, PWR_CR4_WRFBUSYP);//设置RF下降沿触发
   CLEAR_BIT(PWR->CR4, PWR_CR4_WRFBUSYP);//设置RF上升沿触发


//        SET_BIT(PWR->CR3, PWR_CR3_EWRFBUSY);//设置RFBUSY触发
        SET_BIT(PWR->CR3, PWR_CR3_EWRFIRQ);//设置RF中断触发       
       
        HAL_NVIC_SetPriority(SUBGHZ_Radio_IRQn,0x02,0x02);//抢占优先级2,子优先级2
    HAL_NVIC_EnableIRQ(SUBGHZ_Radio_IRQn);
       
        HAL_PWR_EnterSTANDBYMode();
               
}

最佳答案

查看完整内容[请看2#楼]

__HAL_RCC_SUBGHZSPI_CLK_ENABLE(); /* Enable EXTI 44 : Radio IRQ ITs for CPU1 */ LL_EXTI_EnableIT_32_63(LL_EXTI_LINE_44); /* Enable wakeup signal of the Radio peripheral */ LL_PWR_SetRadioBusyTrigger(LL_PWR_RADIO_BUSY_TRIGGER_WU_IT);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
金钱
471
注册时间
2019-4-12
在线时间
92 小时
 楼主| 发表于 2023-2-28 14:44:23 | 显示全部楼层
        __HAL_RCC_SUBGHZSPI_CLK_ENABLE();
  /* Enable EXTI 44 : Radio IRQ ITs for CPU1 */
  LL_EXTI_EnableIT_32_63(LL_EXTI_LINE_44);

  /* Enable wakeup signal of the Radio peripheral */
  LL_PWR_SetRadioBusyTrigger(LL_PWR_RADIO_BUSY_TRIGGER_WU_IT);
       
回复

使用道具 举报

4

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
金钱
471
注册时间
2019-4-12
在线时间
92 小时
 楼主| 发表于 2023-2-28 14:47:06 | 显示全部楼层
void EnterSTANDBYMode(void){        _HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);   __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WRFBUSY);//清除掉已经触发的状态                                 HAL_PWREx_SetRadioIRQTrigger(PWR_RADIO_BUSY_TRIGGER_WU_IT);                      HAL_PWREx_EnablePullUpPullDownConfig(); //   SET_BIT(PWR->CR4, PWR_CR4_WRFBUSYP);//设置RF下降沿触发    CLEAR_BIT(PWR->CR4, PWR_CR4_WRFBUSYP);//设置RF上升沿触发   //        SET_BIT(PWR->CR3, PWR_CR3_EWRFBUSY);//设置RFBUSY触发         SET_BIT(PWR->CR3, PWR_CR3_EWRFIRQ);//设置RF中断触发                        HAL_NVIC_SetPriority(SUBGHZ_Radio_IRQn,0x02,0x02);//抢占优先级2,子优先级2     HAL_NVIC_EnableIRQ(SUBGHZ_Radio_IRQn);                 HAL_PWR_EnterSTANDBYMode();                 }
回复

使用道具 举报

4

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
金钱
471
注册时间
2019-4-12
在线时间
92 小时
 楼主| 发表于 2023-2-28 15:02:31 | 显示全部楼层
现在的唤醒流程是这样的,设备1 和 设备2 在通信中,当设备1断电后,设备2失去通信5s后进入standby模式,当设备1上单后发送数据给设备2,设备2会触发SUBGHZ_Radio,从而退出standby模式。


回复

使用道具 举报

4

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
金钱
471
注册时间
2019-4-12
在线时间
92 小时
 楼主| 发表于 2023-3-2 11:01:55 | 显示全部楼层
问题已经解决了,在函数前加上这两行就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 17:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表