USBD设备虚拟串口使用(即CDC)1.进入RT-THREAD官网,查看新手指导教程,这里用RT-Thread Studio软件测试。
调用rt_usbd_ep_out_handler(&_stm_udc, epnum, hpcd->OUT_ep[epnum].xfer_count)或rt_usbd_ep_in_handler(&_stm_udc, 0x80 | epnum, hpcd->IN_ep[epnum].xfer_count) 向内核发送一个usb_mq消息,type类型为USB_MSG_DATA_NOTIFY 在usbdevice_core.c创建的rt_usd_thread_entry线程接收该消息...
1.在CubeMX中选择使用的STM32F103VE芯片创建工程 2.选择RCC项为外部高速时钟为晶振;选择USB项打开使能,选择USB的IP包;设置时钟频率,主时钟设置为73Mhz,USB时钟设置为48Mhz,cubeMX自动计算分频系数。 3.设置工程选项,生成工程代码。 (三)RT-thread工程修改 1.时钟配置修改 从CubeMX工程的main.c文件中拷贝SystemClock...
阿波罗USB虚拟串口(USB_SLAVE),硬件连接上为VCC、GND、USB_D+(PA11)、USB_D-(PA12);其中USB的电源需要经过PCF8574进行控制,但经过实际测试,该芯片USB_PWR默认即为高电平输出; 二、软件配置 ①、创建RT-Thread工程; ②、打开CubeMX; 2.1打开时钟 2.2选择USB_OTG_FS的Mode为Device_Only 2.3 选择USB_DEVICE的C...
最近在学习RT-thread,想要实现使用USBHID的数据收发,USB设备类型是人机接口设备,但是发现发送数据时没有反应,但是电脑是能识别到USB设备的,并且已经读取到USB设备的PID和VID,说明设备初始化等操作没有问题。 根据官网的手册,在操作I/O设备时(这儿的I/O设备是USB)可以使用rt_device_write函数来实现数据的发送,然后去...
RT-thread应用讲解——U盘(usbhost) 二、使能OTA 要想远程升级,那肯定先得有OTA的功能,关于OTA的使用我在前面的博客里面也详细介绍过了,不知道的同学可以先去看下。 RT-thread应用讲解——OTA OTA部分只要要完成bootloader的制作和app的制作即可。这两部分都调试好了之后就可以加入U盘升级的代码。
4、想到新的 STM32 BSP 所有的 BSP 都是用的同一份驱动,这样就可以根据有没有做好的 USB 驱动来判断有没有 BSP 支持 USB 功能了。打开rt-thread\bsp\stm32\libraries\HAL_Drivers目录。如下所示,可以看到里面果然有 usb 的驱动文件,叫做drv_usbd_fs.c。
config BSP_USBD_TYPE_FS bool # "USB Full Speed (FS) Core" endif 1. 2. 3. 4. 5. 1.2 Tools构建 该文件夹就是工程构建的脚本, AI检测代码解析 importos importsys importshutil cwd_path=os.getcwd() sys.path.append(os.path.join(os.path.dirname(cwd_path),'rt-thread','tools')) ...
config BSP_USBD_PHY_ULPI bool # "ULPI: UTMI+ Low Pin Interface" endif 1.2 Tools构建 该文件夹就是工程构建的脚本, import os import sys import shutil cwd_path = os.getcwd() sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) ...
在u***device_core.c创建的rt_u***d_thread_entry 线程接收该消息后处理 根据msg type类型为 USB_...