你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32U3 评测】4. USBx HID 通信

[复制链接]
jundao721 发布时间:2026-6-10 11:31
STM32U3C5 nucleo板卡除了自带一路CAN,还自带一路USB 2.0 Full-speed controller。如图1 Datasheet中说明所示:
* b7 Y2 O- D* n1 j( k: q 4-2.png
$ ]( l$ Q( B' X1 L' y, z) j图1
3 Z0 o) c/ b% ^6 v8 [6 D6 h( w! E6 Z
( a7 s+ o7 n1 \' d# q, d从CubeMx 开始配置,其中最主要时钟要配置为48Mbps,如图2所示:# m5 g; ]$ n' B
4-4.png
2 B8 [/ E  j/ n; T5 @图2) \3 W- p7 R  H6 r8 T9 s

& F7 s* ~. c4 N9 I/ N0 R/ `外设USB配置如图3所示:
7 E5 u& }& x  I( G 4-3.png / V* z6 E* y& b
图3- O: ?* e  C/ u& Y- `. h
9 M8 m7 P1 G8 g4 Y% o
参数当前默认即可。
% y1 q+ q5 F. l; v! w' w: a! b7 X/ h9 P, e; F* z' e' R9 g: k! L
" N4 g& r' l* W( o! l
然后生成项目。你会发现生成的项目缺少一些文件,比如关键的描述符文件。以前调试USB通讯,配置一下外设,修改部分描述符文件参数,就能实现HID正常通信。很久不处理USB通讯接口了,感觉生成的文件得重新按照协议熟悉。
1 y8 I4 P+ p- {! M& p) {' p% J2 S' F' ^8 j# N
4 R( ]1 ]& J8 w& f3 b
找找官方的例程,官方当前应该主推USBx,所以很多描述符的配置应该在USBx 这部分。最下面找到USBx, 可以配置如图4所示:
7 t2 e  T7 ^2 f) D( Y6 J/ s  b! r 4-5.png
/ l" {- o+ F+ ]8 R6 R* \7 e; H" V图4* O4 }1 p4 t3 n5 \9 c/ ^

2 v# W, p( T. x7 k当前实现裸机HID双向通信就达到当前的测试要求了,不要求使用threadx。, T  w( c0 r$ `# r$ ^

* ]" r4 H8 J" r2 _% [" m

$ H0 _* b4 ^; I' p5 N3 ?; m5 n1 r配置好以后,在vscode 中打开。主实现函数如下:
2 E5 e( H; D$ R. l$ y
  1. /* USER CODE BEGIN 3 */5 t% ?& Y+ {+ s$ X
  2.     ux_system_tasks_run();
    & h8 H* P1 e( M: U, X) R' v

  3. 2 h7 P8 p7 f1 o' z& m4 v
  4. 0 e! W3 E2 y" `5 U1 M
  5. if (USBD_Custom_HID_ReceiveReport(rx, &rx_len) == UX_SUCCESS)
    ) s/ S4 a  d6 U. S3 C, M9 J
  6. {3 K) G7 }& A. \+ i
  7.     /* 这里处理主机发来的 rx 数据 */
    6 z& ^/ ]( `7 W7 t' ]
  8. 7 i: L0 i2 J2 H" h( r# O6 T, @
  9.     /* 示例:原样回发 */
      m6 c% p, [  C$ x  @4 G  _
  10.     USBD_Custom_HID_SendReport(rx, rx_len);
    ; k2 H4 w" E0 f4 `1 b/ A
  11. }& d( x" I! f$ J: y- \$ {! m: z
  12.   }
    5 u' a9 l+ F1 Z- A" G6 E
  13.   /* USER CODE END 3 */
复制代码

' ~5 B3 Y2 s) `: J! F测试通过上位机发送64字节数据,MCU收到数据后再返回上位机。最终测试结果如图5所示:' A! w/ M1 V7 k9 u2 R  A, h  o
4-1.png
- B  J& l; t3 l+ S8 f& T图5
: f3 u. Y$ e/ r5 f# l, y) c* h' N( B3 n% I/ @, E6 P# J6 q8 _
测试结果达到了HID 双向通讯测试要求。既然官方主推USBx,复杂任务还需要使用threadx,官方有demo, 可以继续学习。. j. J& f, {$ |$ G/ i. }0 k
4 N( C, X9 N+ J1 j
赞 收藏 评论0 发布时间:2026-6-10 11:31

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版