我用cubeMX 生成了一个USB HOST CDC 类工程,然后移植成打印机类,连接打印机后枚举能成功(用DEBUG调试信息和USB协议分析仪查看结果)。但是使用 if(Appli_state == APPLICATION_READY) USBH_CDC_Transmit(&hUsbHostFS, PrintBuff, len); 发送数据时,DUBUG 跟踪发现运行到如下语句(红色)时,程序进入到HardFault_Handle(蓝色)处死循环。请教高人是什么原因造成了硬故障?怎么解决? 硬件使用的是阿波罗F7 开发板。 HAL_StatusTypeDef USB_WritePacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len, uint8_t dma) { uint32_t USBx_BASE = (uint32_t)USBx; uint32_t *pSrc = (uint32_t *)src; uint32_t count32b, i; if (dma == 0U) { count32b = ((uint32_t)len + 3U) / 4U; for (i = 0U; i < count32b; i++) { USBx_DFIFO((uint32_t)ch_ep_num) = *((__packed uint32_t *)pSrc); pSrc++; } } void HardFault_Handler(void) { while (1) { } } |
评分
查看全部评分