完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用的STM32cubemx 版本是 6.4.0, 配置了stm32h743的USB host ,想往外发数据,所以调用了
USBH_CDC_Transmit(),但是在这个函数里运行到第一个if下一步直接就跳到 HardFault_Handler了,不知道为什么 USBH_StatusTypeDef USBH_CDC_Transmit(USBH_HandleTypeDef *phost, uint8_t *pbuff, uint32_t length) { USBH_StatusTypeDef Status = USBH_BUSY; CDC_HandleTypeDef *CDC_Handle = (CDC_HandleTypeDef *) phost->pActiveClass->pData; if ((CDC_Handle->state == CDC_IDLE_STATE) || (CDC_Handle->state == CDC_TRANSFER_DATA)) { CDC_Handle->pTxData = pbuff; CDC_Handle->TxDataLength = length; CDC_Handle->state = CDC_TRANSFER_DATA; CDC_Handle->data_tx_state = CDC_SEND_DATA; Status = USBH_OK; #if (USBH_USE_OS == 1U) phost->os_msg = (uint32_t)USBH_CLASS_EVENT; #if (osCMSIS < 0x20000U) (void)osMessagePut(phost->os_event, phost->os_msg, 0U); #else (void)osMessageQueuePut(phost->os_event, phost->os_msg, 0U, NULL); #endif #endif } return Status; } |
|
相关推荐
1个回答
|
|
根据您提供的信息,您在使用 STM32CubeMX 6.4.0 配置 STM32H743 的 USB host 时遇到了问题。在调用 USBH_CDC_Transmit() 函数时,程序在第一个 if 语句后直接跳转到 HardFault_Handler。以下是可能的原因和解决方案:
1. 确保 USB host 驱动已正确初始化:在调用 USBH_CDC_Transmit() 之前,请确保 USB host 驱动已正确初始化并配置。检查 USBH_Init() 和 USBH_RegisterClass() 函数是否已正确调用。 2. 检查 CDC 类驱动是否已正确注册:确保 CDC 类驱动已通过 USBH_RegisterClass() 函数注册到 USB host 驱动中。 3. 检查 pbuff 和 length 参数:确保传递给 USBH_CDC_Transmit() 函数的 pbuff 和 length 参数是有效的。如果 pbuff 为空或 length 为 0,函数可能会失败。 4. 检查 USB host 驱动的状态:在调用 USBH_CDC_Transmit() 之前,检查 USB host 驱动的状态(例如,是否已连接设备,设备是否已枚举等)。如果驱动状态不正确,函数可能会失败。 5. 检查 USB 硬件连接:确保 STM32H743 的 USB 引脚已正确连接到目标设备(例如,CDC 设备)。检查 USB 引脚是否焊接正确,以及是否有任何硬件故障。 6. 检查中断和时钟配置:确保 USB 时钟和中断已正确配置。检查 STM32CubeMX 中的时钟设置和中断配置。 7. 调试和日志记录:在 USBH_CDC_Transmit() 函数中添加调试和日志记录,以帮助确定问题所在。检查 CDC_Handle 是否已正确初始化,以及 USB host 驱动的状态。 8. 更新 STM32CubeMX 和固件库:尝试使用最新版本的 STM32CubeMX 和固件库,以确保所有驱动和配置都是最新的。 如果以上建议都无法解决问题,建议您查阅 STM32CubeMX 的官方文档和示例项目,以获取更多关于 USB host 和 CDC 类驱动的信息。此外,您还可以在 STMicroelectronics 社区或相关论坛上寻求帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1874 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1658 浏览 1 评论
1143 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
759 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
788浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
610浏览 3评论
628浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 07:34 , Processed in 0.956663 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号