硬件:正点原子阿波罗F429开发板,主控STM32F429IGT6 软件:RT-Thread Studio 2.2.5 RT-Thread 版本:4.1.0 在RT-Thread Studio中开启外设的时候,可以看一下drivers/board.h中相关外设使用的说明,例如 根据提示,要是能USB设备,需要5个步骤: 1.在RT-Thread Settings中打开USB设备,RT-Thread Settings -> 组件 -> 设备驱动程序 -> 使用USB,做如下配置(配置完记得保存) 2.添加相关宏定义 3.将CubeMX生成的工程中void HAL_PCD_MspInit(PCD_HandleTypeDef hpcd)函数复制到drivers/board.c文件中* CubeMX中USB相关配置 USB时钟配置为48MHz。这里如果不知道RT-Thread Studio配置外部晶振和时钟的可以看我这篇博客:RT-Thread Studio使用——创建工程并配置外部时钟 将CubeMX生成的工程中void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)函数复制到drivers/board.c中 4.将CubeMX生成的时钟配置函数也复制到工程中(官方说的是复制到board.c中,我是复制到drv_clk.c中,替换掉原来的时钟配置函数,具体可以看前面提到的那篇博客) 5.在drivers/stm32f4xx_hal_conf.h文件中添加宏定义PCD模块使能宏定义 跟我一样,按照前面5个步骤走完的话,编译程序,应该会报如下错误 EP_MPS_64没有声明。我在RT-Thread Studio生成的工程中全局搜索,没有搜到定义的地方。于是我在CubeMX生成的工程中全局搜索,就搜到了这个宏定义,把它复制到报错的文件中(drivers/drv_usbd.c)就可以了 之前我也照着网上其他人的博客操作,但是其他人好像没有提及到这个问题,可能是RT-Thread版本不一样还是其他的原因,希望有知道的大佬指点一下。 到此编译工程就没有问题了。烧录程序测试一下。 控制台键入命令list_device 可以查看到usb虚拟串口 直接用usb连接电脑也可以识别到设备 总结:用usb虚拟串口后续是想实现控制台映射到usb的,目前只是实现了USB虚拟串口的设备,目前由于控制台用的是uart1,所以usb虚拟串口还打印不了信息,后面在研究看看要怎么搞。有搞过的大佬可以指点下就更好了,感激不尽!
|