HAL_SLEEP只用于睡眠功能的使能,进入睡眠需要调用进入低功耗睡眠模式的函数,对于58x系列的单片机函数名为CH58X_LowPower。
手动设置一个flag标志,在枚举收到令牌包时,这个flag置位,表示USB正在工作中。在调用CH58X_LowPower前或是在函数中添加对flag的判断,若判断为USB仍在工作中则直接return,不继续执行睡眠模式的启动。
当USB数据传输完毕,用户从USB接口拔掉设备时,flag需要清除标志位。可以向主机发个数据包看主机是否有应答,或者是读D+D-两脚上的电压是否都没有上拉,来判断设备是否手动拔出。若已经拔出,flag标志清除,则可以进入低功耗睡眠。
HAL_SLEEP只用于睡眠功能的使能,进入睡眠需要调用进入低功耗睡眠模式的函数,对于58x系列的单片机函数名为CH58X_LowPower。
手动设置一个flag标志,在枚举收到令牌包时,这个flag置位,表示USB正在工作中。在调用CH58X_LowPower前或是在函数中添加对flag的判断,若判断为USB仍在工作中则直接return,不继续执行睡眠模式的启动。
当USB数据传输完毕,用户从USB接口拔掉设备时,flag需要清除标志位。可以向主机发个数据包看主机是否有应答,或者是读D+D-两脚上的电压是否都没有上拉,来判断设备是否手动拔出。若已经拔出,flag标志清除,则可以进入低功耗睡眠。
举报