gpt4 book ai didi

c++ - 使用 Mbed 库在 STM32 和 PC 之间设置串行 USB 通信

转载 作者:行者123 更新时间:2023-11-28 01:15:58 29 4
gpt4 key购买 nike

我有一个 STM32 f401RE .我正在使用 Mbed library用于设置从 STM32 到 PC 的连接。我想通过串口向开发板发送一个字符序列。作为答案,我期待一个闪烁的 LED。例如:led1 导致 LED ONled2 导致 LED OFF

问题是我不知道如何设置连接端口。

#include "mbed.h"
#include "USBSerial.h"

//Virtual serial port over USB
USBSerial serial;

int main(void) {

while(1)
{
serial.printf("I am a virtual serial port\r\n");
wait(1.0);
}
}

You can use the USBSerial interface to emulate a serial port over USB. You can use this serial port as an extra serial port or as a debug solution. It also communicates between Mbed and a computer.

我想做以上所有事情(尽管我不知道什么是通过 USB 模拟串行端口。那个虚拟 USB 是什么?)。

我看到 USBSerial 构造函数需要USBSerial(bool connect_blocking=true,uint16_t vendor_id=0x1f00,uint16_t product_id=0x2012,uint16_t product_release=0x0001)。我想我需要修改其中的一些地址。问题是,在 Windows 上,端口在设备管理器中用 COMxx 表示,在 Linux 上用 ttyACMxx 表示。我如何将其转换为六边形地址 - 这是我必须要做的吗?

最佳答案

您不必转换任何东西或弄乱 USB product_idvendor_id,mbed 串行端口应该显示为任何其他串行端口,所以如果它不显示对您来说,这意味着您遇到了驱动程序问题。

在最新的 Linux 发行版上,设备应显示类似于以下内核消息的内容:

 cdc_acm 5-2:1.1: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters

在 Windows 上,您可能需要安装驱动程序。执行此操作后,串口应在设备管理器中显示为 mbed Serial Port (COMx)。您可以在很多地方获得故障排除帮助,请参阅 here ,例如。

您在 Windows 和 Linux 上都什么也得不到的事实让人怀疑您是否使用了正确的电缆(一些 USB 电缆仅用于充电,对您的目的没有好处,而其他一些电缆在一段时间后就会失效) .我首先要确保您的电缆可以与其他设备一起使用(显然不只是用于充电)。您的电路板也有可能(或来自工厂)坏了,但这不太可能。

关于c++ - 使用 Mbed 库在 STM32 和 PC 之间设置串行 USB 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58724516/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com