我debug跟踪,发现已经没有任何事件了(if (idx < tasksCnt)这个条件不满足了)。但是还是不进睡眠,osal_pwrmgr_powerconserve()里面的if ( pwrmgr_attribute.pwrmgr_task_state == 0 )一直不满足不能进入睡眠,是不是我开启了串口DMA的问题(因为DMA需要时钟)??如果用串口中断这种方式是不是可以保证进入睡眠呢???怎么搞呢???
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我debug跟踪,发现已经没有任何事件了(if (idx < tasksCnt)这个条件不满足了)。但是还是不进睡眠,osal_pwrmgr_powerconserve()里面的if ( pwrmgr_attribute.pwrmgr_task_state == 0 )一直不满足不能进入睡眠,是不是我开启了串口DMA的问题(因为DMA需要时钟)??如果用串口中断这种方式是不是可以保证进入睡眠呢???怎么搞呢???
看一下pwrmgr_attribute.pwrmgr_task_state这个值是多少?确定一下是那个任务线程调用的
在看看有没有哪里调用了osal_pwrmgr_task_state这个函数
这个函数的参数中PWRMGR_HOLD是保持不休眠的状态。PWRMGR_CONSERVE是可睡眠状态
自问自答,默认是受CTS控制的。CTS为低时可以正常收发,为高时可以睡眠