记录一下我在正点原子 F429 阿波罗开发板上实现 USB 虚拟串口的过程,希望可以帮助到其他想要学习 USB 的人。
转载于:https://blog.csdn.net/newbie_Blogger/article/details/92617242
rt-thread\bsp\stm32
目录下,找到了正点原子 F429 阿波罗开发板对应的BSP stm32f429-atk-apollo
。menuconfig
命令,查看了一下,发现在硬件配置的片上外设的配置菜单中没有配置 USB 的选项,看来这个 BSP 还不支持 USB 设备。rt-thread\bsp\stm32\libraries\HAL_Drivers
目录,如下所示,发现里面果然有 usb 的驱动文件,叫做 drv_usbd_fs.c
。这就很好办了。BSP_USING_USBD_FS
这个配置。RT_USING_USB_DEVICE
这个配置。有了这段示例就好说了,只要在正点原子阿波罗的 bsp 下也添加这段配置就好了。stm32f429-atk-apollo\board\CubeMX_Config
目录下 stm32CubMX 的工程,配置 usb.stm32f429-atk-apollo\board\CubeMX_Config\Src
目录下main.c中的时钟配置函数SystemClock_Config
更新到stm32f429-atk-apollo\board
目录下的 board.c 文件中。cannot open source input file "stm32f4xx_hal_exti.h": No such file or directory
,我注释掉这个头文件重新尝试编译。再次编译,发现就没有问题了。list_device
命令可以看到注册到系统中的两个 usb 相关的设备。#include <rtthread.h>
#include <rtdevice.h>
int main(void)
{
rt_device_t dev = RT_NULL;
char buf[] = "hello rt-thread!\r\n";
dev = rt_device_find("vcom");
if (dev)
rt_device_open(dev, RT_DEVICE_FLAG_RDWR);
else
return -RT_ERROR;
while (1)
{
rt_device_write(dev, 0, buf, rt_strlen(buf));
rt_thread_mdelay(500);
}
return RT_EOK;
}
这样就在正点原子 F429 阿波罗开发板上实现了 USB 虚拟串口了。
电脑端一点反应都没有,有遇到这问题的吗??
图片怎么都显示不出来了
@ching 可能是由于贴主直接从csdn 复制他自己的文章与图片,图片并未上传到这个论坛上
正点原子的教程中,虚拟串口配置为从机,我想用USB驱动4G模块,是不是应该配置为主机啊?如何配置,希望大咖赐教.