您好,我们用ch32v203c8t6做了个USB键盘设备,电脑开机的时候不识别,插拔一下就正常了,在电脑开机时设备有收到USBWakeUp_IRQHandler中断事件,使用了很多方法处理无效,比如,重置USBD_Reset,调用USB_Istr()等都没作用,而且中断这里打印加多了,重新插拔都不识别了,请问应该如何处理?不胜感激!!!
使用那个键盘鼠标的也一样问题,都是设备可以识别,但是USBD_ENDPx_DataUp发送失败
你好,可能是有一个端点一直在上传数据,然后重启之后,那个端点busy一直为1,原因是reset里没有把端点的busy标志位清零,在usb_prop.c中的USBD_Reset函数加入下面清零操作即可。
这个变量已经处理过了,已经能保证每次都调用上传按键数据了,但是不能唤醒,能帮我看下相关代码吗
我看网上别人用了同一个芯片https://blog.csdn.net/ShenZhen_zixian/article/details/120216981,说是看门狗与ABP1时钟的问题,进入睡眠的时候禁用一下,我不晓得如何处理,能讲下相关的流程吗
你好,中断唤醒无法唤醒的原因是,在USB中断里进入了睡眠,需要中断嵌套,EXTI中断抢占进来,才能唤醒。需要配置这几个地方,第一个是需要让USB的抢占优先级低于EXTI的抢占优先级(新例程默认是这样的),第二个是需要在启动文件中修改嵌套等级,804这个寄存器输入0x7,表示设置为2级嵌套。第三个是修改NVIC_GROUP为group1
独立看门狗开启后无法关闭,需要RTC定时唤醒去喂狗。窗口看门狗可以通过关闭APB时钟关闭。
刚从官方主页下载了一份,比较了一下,跟我用的是一样的
原来的代码逻辑没有修改,我这个中断应该是没问题的,因为用其它键盘唤醒后在windows输入密码界面,已经能正常输入了,只是电脑睡眠下去了无法唤醒