请问在CH582的蓝牙TMOS功能开启HAL_SLEEP时,每次唤醒时Systick是否会恢复启动

在我自己测试使用自己的OS时候,发现在蓝牙打开后并启用HAL_SLEEP时,会卡死系统执行,使用的库是V1.2版本,但V1.1版本没有这个问题,找到根源可能的问题是:

320381706-43858492-6995-45e3-90a1-dcdfb1ca6ef3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI1ODc1NzcsIm5iZiI6MTcxMjU4NzI3NywicGF0aCI6Ii80MzQ3NDQ5MS8zMjAzODE3MDYtNDM4NTg0OTItNjk5NS00NWUzLTkwYTEtZGNkZmIxY2E2ZWYzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA0MDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNDA4VDE0NDExN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk0OTk0N2YzMjhhZjYyNjU0OTY3NGY4ZDZmOTk1YWVmYTNhZDZmYjUyYjYyYjI4MmRhOTFlOWJmZWQ4NmY5NGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Mtmf6VcDmenu9TqC1T_C9mC4SlBw4Zh-HoR6gtqvH2U


是不是这里会在每次唤醒的时候关闭Systick定时器?

并且我在寻找资料的时候发现CH573芯片Sleep说明(RTC程序说明) - SweetTea_lllpc - 博客园 (cnblogs.com)

这里提到用户只需要管理好唤醒的事件即可,这个是什么意思?

是控制好中断中的处理内容吗,详细来说就是我们可以控制GPIO唤醒和BAT唤醒中断处理程序,禁止多次定义RTC唤醒中断的意思?


睡眠唤醒后,systick停止,需要重新初始化。

使用蓝牙的时候,进入睡眠只需要开启HAL_SLEEP,唤醒的方式为GPIO唤醒和tmos任务唤醒。唤醒后执行完成任务会自动进入睡眠的,无需再自己调用睡眠。因此只需要管理好自己的唤醒以及执行的任务。


我看到您同事讲到,任务调度函数使用注意事项:

  1. 禁止在中断中调用,包括操作任务和传递消息

我们在中断中,是不是可以使用tmos_set_event来设置标志?否则我认为无法管理好自己的唤醒以及执行的任务。


不要在中断中调用tmos任务,可以在中断中置标志,然后某个tmos任务一直查询该标志,查询到则进行执行。


只有登录才能回复,可以选择微信账号登录