由于3月初刚刚接触M487JIDAE这个MCU,目前根据开发板的电路图,重新设计了一个当作普通HID设备使用的电路图,见附件的zip文档。
目前按照这个电路图设计出来了PCB板,PCB板烧录了HID例程(HSUSBD_HID_MouseKeyboard)成功,但是插到电脑的USB接口上无法识别USB设备,连感叹号都识别不了。(但是同样的HID例程,烧录到M487JIDAE这个开发板上是可以正常识别USB设备的),目前调试了程序,发现最后卡死在这个USB初始化函数出不来:
- void HSUSBD_Open(S_HSUSBD_INFO_T *param, HSUSBD_CLASS_REQ pfnClassReq, HSUSBD_SET_INTERFACE_REQ pfnSetInterface)
- {
- g_hsusbd_sInfo = param;
- g_hsusbd_pfnClassRequest = pfnClassReq;
- g_hsusbd_pfnSetInterface = pfnSetInterface;
- /* get EP0 maximum packet size */
- g_hsusbd_CtrlMaxPktSize = g_hsusbd_sInfo->gu8DevDesc[7];
- /* Initial USB engine */
- HSUSBD_ENABLE_PHY();
- /* wait PHY clock ready */
- while (1)
- {
- HSUSBD->EP[EPA].EPMPS = 0x20ul;
- if (HSUSBD->EP[EPA].EPMPS == 0x20ul)
- {
- HSUSBD->EP[EPA].EPMPS = 0x0ul;
- break;
- }
- }
- HSUSBD->OPER &= ~HSUSBD_OPER_HISPDEN_Msk; /* full-speed */
- }
复制代码 其中这里的条件if (HSUSBD->EP[EPA].EPMPS == 0x20ul)一直满足不了,无法break退出来:
我这里已经确定了电路上的12M晶振已经跑起来了(使用频谱仪测试了)。所以一直想不到思路了,请教一下大家怎么处理,谢谢!
|
|