700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > RT_Thread Studio使用——USB虚拟串口(VCP)

RT_Thread Studio使用——USB虚拟串口(VCP)

时间:2023-10-13 07:13:24

相关推荐

RT_Thread Studio使用——USB虚拟串口(VCP)

硬件:正点原子阿波罗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_HandleTypeDefhpcd)函数复制到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虚拟串口还打印不了信息,后面在研究看看要怎么搞。有搞过的大佬可以指点下就更好了,感激不尽!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。