STMCU小助手
发布时间:2022-2-12 18:06
|
前言9 a8 k! M- c9 X, | USB 作为从机设备时,管脚连接以及通讯的验证方法其实就是下载一段简单 USB 程序,在不需要任何驱动的前提下实现简单的 USB 通讯。通过这个简单程序的运行情况来判断 USB 管脚和通讯是否正常。 1 t3 b3 c, ^% s( q! h5 l 问题分析 USB 作为从机设备时,其硬件验证相对简单。当硬件工程师怀疑自己的硬件有问题时,就自己写一个简单的测试程序。但这对一般的硬件工程师来说还是有一定难度的。通过 STM32CubeMX 这个工具,这个过程就变的非常简单了。方法如下:2 U) J) S7 k8 D- V t ! G$ [9 N- {! c. h 1/在 STM32CubeMX 中选择您需要使用的开发板,我们以 STM32F401C-Discovery 板子为例(在选择板子的时候,是不需要需改时钟配置+管脚配置的,所以流程更加简单)5 G( X4 z6 j; q0 R , `2 l; u# R7 T# f( U# S/ ^1 o
, |: E4 r/ l K- {: u: f 注意:如果你选择的不是开发板,而是自己做的板子请参考如下简易配置流程:& @5 ^! E5 y, ^9 z 1. 选 STM32Fxxx 2. 在 PinOut 项中配置 RCC 的 HSE 外部时钟开启(这个是必须的,除了 STM32F0x2 系列 MCU) 3. 开启 USB_OTG_HS/USB_OTG_FS/USB 中的 Internal FS PHY 为 Device Only 4. 设置 Middleware 中的 USB_Device 为 Human Interface device0 B* w. N0 R. z, M 5. 配置时钟的输入为‘x’M(默认是 25M,这里的‘x’是需要与实际连接晶体频率相等),设置系统时钟为 72M(建议使用时钟自动分配功能,具体数据需要根据实际所选芯片的时钟范围来设置) 6. 直接生成代码运行即可 2/在 Pinout 中选择 USB OTG FS 选项中的 Device Only 选项。: s' S& R- M8 E ^7 T5 ~ - u1 ]; z' a0 N
. M+ m0 |! A, z7 R& H, M8 d 之后在 Middleware 中选择 USB Device 选项中的 Human Interface device class 7 S/ y0 \! l" g( |% B; P' ?0 F
' Z4 B$ O# S# O8 r ! M, ?* d# y2 P) M) S 3/直接生成工程,并编译下载到 STM32F401C-Discovery 板子上就可以验证了。如果可以看到 HID 的设备,那么就是 USB部分的硬件联系没有什么问题了.1 t3 {8 H8 q b8 b
总结: 该工程只是完成了一个 USB HID 类的枚举工作,不需要工程师添加任何代码,其作用就是为了验证 USB 作为从机设备时的硬件管脚连接以及通讯是否有问题。且一般 windows 都是支持 HID 这个基本类,故此方法有广泛的实用意义。 j1 _, A' V( r0 X0 T. H+ y |
实战经验 | 基于STM32G0B1的全桥移相+同步整流PWM解决方案
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:逢7发帖赢大礼】8、基于STM32G070板子的Ymodem串口协议IAP Bootloader开发
【福利三:逢7发帖赢大礼】7、基于STM32G070板子TF卡的FATFS移植
【福利三:逢7发帖赢大礼】6、基于STM32G070板子spiflash的FATFS移植
【福利三:逢7发帖赢大礼】5、基于STM32G070板子IRDA红外遥控接收解码
【福利三:逢7发帖赢大礼】4、基于STM32G070板子SPI flash 移植SFUD库
【福利三:逢7发帖赢大礼】基于STM32G070板子的uart shell移植设计
【福利三:逢7发帖赢大礼】3、基于STM32G070板子的YModem串口协议通信
【福利三:逢7发帖赢大礼】2、基于STM32G070板子的OLED移植U8G2库
微信公众号
手机版