[AT32F415] AT32F415 官方库 USB HOST CDC 频繁进入usb_global_clear_interrupt(usbx, USB_OTG_HCH_FLAG);

[复制链接]
 楼主| vhuanyou 发表于 2025-7-9 18:13 | 显示全部楼层 |阅读模式
AT32F415 官方库 USB HOST CDC 当调用这个函数:cdc_start_reception(&otg_core_struct_cdc.host, cdc_rx_buf, sizeof(cdc_rx_buf));   之后, 频繁进入usb_global_clear_interrupt(usbx, USB_OTG_HCH_FLAG); 中断次数每秒150998次。

微信截图_20250709180027.png
tanleitanlei 发表于 2025-7-14 17:35 来自手机 | 显示全部楼层
出现这种情况时,外部有没有连接cdc设备呢?
我是一颗胖蘑菇 发表于 2025-7-15 12:54 | 显示全部楼层
这个中断频率确实异常高,可能是USB驱动配置或者硬件连接问题。建议检查硬件连接是否正确,以及驱动配置是否合理。
 楼主| vhuanyou 发表于 2025-7-16 14:46 | 显示全部楼层
我是一颗胖蘑菇 发表于 2025-7-15 12:54
这个中断频率确实异常高,可能是USB驱动配置或者硬件连接问题。建议检查硬件连接是否正确,以及驱动配置是 ...

如果不调用cdc_start_reception这个函数,那么中断次数1000次/秒,否则调用cdc_start_reception函数 16万次/秒。USB CDC双向通信速率高稳定功能一切正常,就是中断太频繁了。调试可以看到频繁进入这个中断标志usb_global_clear_interrupt(usbx, USB_OTG_HCH_FLAG);  功能上没问题,只不过频繁中断会导致系统开销增大,跑ROTS够呛
tanleitanlei 发表于 2025-7-16 17:59 来自手机 | 显示全部楼层
vhuanyou 发表于 2025-7-16 14:46
如果不调用cdc_start_reception这个函数,那么中断次数1000次/秒,否则调用cdc_start_reception函数 16万 ...

这个demo在调用那句代码后,会一直不断地发送数据,进中断是正常的。这个只是一个demo,正常应用中是需要发送数据才发送,不会像这个demo一直不停的发。rtos应用中需要对硬件中断合理分配优先级
DuskHarvest 发表于 2025-7-16 18:55 | 显示全部楼层
先保证USB硬件是对的,能识别设备,然后在看下程序。
DuskHarvest 发表于 2025-7-16 18:55 | 显示全部楼层
先保证USB硬件是对的,能识别设备,然后在看下程序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

69

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

10

主题

69

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部