由于3月初刚刚接触M487JIDAE这个MCU,目前根据开发板的电路图,重新设计了一个当作普通HID设备使用的电路图,
目前按照这个电路图设计出来了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晶振已经跑起来了(使用频谱仪测试了)。所以一直想不到思路了,请教一下大家怎么处理,谢谢!