你需要检查usbd设备注册没有,正常来说是使用completion方式自动初始化的
看了HAL的USB CDC,标准库的USB CDC少了个文件“drv_usb.c”, 里面有 stm_usbd_register这个函数,
函数里面有 rt_device_register((rt_device_t)&_stm_udc, “usbd”, 0);
然后 rt_usb_device_init();
这样就可以了,这个文件里面内容有点多,
标准库的项目里面没有提供这个文件
发布于5年前
你需要检查usbd设备注册没有,正常来说是使用completion方式自动初始化的
看了HAL的USB CDC,标准库的USB CDC少了个文件“drv_usb.c”, 里面有 stm_usbd_register这个函数,
函数里面有 rt_device_register((rt_device_t)&_stm_udc, “usbd”, 0);
然后 rt_usb_device_init();
这样就可以了,这个文件里面内容有点多,
标准库的项目里面没有提供这个文件
发布于5年前
[i=s] 本帖最后由 uctime_#_@_#_163.com 于 2019-9-16 16:29 编辑 [/i]
如果你用的是 stm32,记得在 cubemx 里面把 USB 打开重新生成代码
我没有用HAL库, rt_usb_vcom_init 、rt_usbd_function_cdc_create 我设置了断点,程序没有进去
发布于5年前
如果你用的是 stm32,记得在 cubemx 里面把 USB 打开重新生成代码
谢谢这么快回复,我用的是stm32F103CB,没有用到cubemx,我试试看
发布于6年前
1、因为softDevices 用到了RTC0,而rtt缺省也适用rtc0, 因此,若想使用协议栈,rtt应该换成使用RTC1
2、Target配置中,IROM1起始地址改为 0x14000, IRAM1的起始地址改为 0x20002000
问 rt_device_find(USB_DEVICE_CONTROLLER_NAME)