0

如何在设备模式下作为 HID(USB) 运行的 STM32f407 发现板中从主机 PC 接收 OUT 报告数据?可能吗?我正在考虑使用 hidapi 从主机发送数据。

4

1 回答 1

1

有一个官方的 USB 库。这并不容易,但您可以尝试运行这些示例并根据您的需要调整它们。 http://www.st.com/en/embedded-software/stsw-stm32046.html

小心时钟设置。我遇到了问题。以下是我在 system_stm32f4.c 中设置的值:

HSE = 8000000
PLL_M = 8
PLL_Q = 7
PLL_N = 336
PLL_P = 4

HSE 是板上的水晶。它取代了 MCU 上的嵌入式时钟。其他设置与原始配置文件中的值略有不同。以下是不同时钟的计算:

PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
= 8000000 / 8 * 336 = 336000000

USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ
= 336000000 / 7
= 48000000

SYSCLK = PLL_VCO / PLL_P
= 336000000 / 4
= 84000000

HCLK = SYSCLK / 1
= 84000000

PCLK2 = HCLK / 1
= 84000000

PCLK1 = HCLK / 2
= 84000000 / 2
= 42000000

如果您使用 USB FS,“USB OTG FS”时钟必须 >= 48MHz。否则设备将无法识别。

于 2016-11-18T21:41:29.890 回答