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

【经验分享】STM32F746ZG USB 驱动不正常

[复制链接]
STMCU小助手 发布时间:2022-2-14 21:22
前言
9 }1 D7 c& Y7 |& R7 K* p8 W4 H+ Y某客户的产品,需要评估 NUCLEO-F746ZG 板上的 USB 功能,使用 cube Version 4.15.1 版本工具生成工程,但在 win7 和 win10 上遇到驱动不正确。
3 t' E) W. b, W" h9 w# n! [. P J_{%UJAYZZC~L)NBOQXOWSQ.png / V9 W* c8 v+ E; y' |
: @/ g/ O( O/ e# c% c
使用 32F411 或 F407 时枚举及驱动,都很正常: w6 u  j, I7 y2 M3 D* |
+ h" z8 o# M& ^1 U6 {3 q' z
1V8SI2EWT]TVA62M58W6)T1.png 3 i2 F) n! |$ ?: f
: C: d  n. W2 ]! x) P$ G! j& x8 y
一、 测试
- A' h( j$ V. P/ _, r1.1. IDE 环境

$ {0 ~2 Q% ^4 ~" Y+ l- EEmbeded workbench for ARM v7.300 w3 z4 m% G$ r- B
1.2. 修改堆栈大小8 i7 J  U' Z1 i) Y( G
原 heap 为 0x200,调整到 400 时可正常使用,如下图:
; [2 I! T8 H( b7 @2 ^3 X
1 H5 O. ?. P/ [* u! Z* c 76UOC{9F(3}AND5M5XW}GEN.png
( Q9 F5 x& u; M4 m7 a6 L$ J
; k! J; r1 k) |' ]PC 机上正常,如下图:0 d: j0 t9 @8 W
% E. L% I- D6 b& |; b
M99X{NGK47_A)6~MY1VPVNT.png   H8 W0 Y/ m8 T3 ]6 B- t, {0 K8 ^

- @5 I$ X  r' y$ F5 ?' \1.3. 修改编译选项
' F. z! Q1 M  p) ]" C# m" O在 IAR 编译选项中,选择检查 heap,如下图:) }& O# I- C  a" S( P' B

% k% F7 ^" @& [ 0NQIY_$O0G0JQE0C]@5R5_7.png % W) O* q; I$ n$ C) I! V. n

. w: q. x6 a- T3 Z/ ^( r5 E编译执行中发现在 USB_CDC.c 文件中第 517 行分配内存时超过 0x200 大小,如下图:3 p6 n" b5 C+ N5 x* C, V6 a0 O

; i# |# b3 [" G! t5 Y3 Q/ t& a VV]E7OP__CUF1F~P~A7I0.png
- J# N1 c" s3 N$ F
: }3 e4 v0 O& \4 {8 o% S二、 结论/ i$ J- K% ?$ b2 F& \( H
应该是驱动代码占用了堆空间不够导致的程序不正常。
. S6 z! v/ X5 u8 ^
! t& ?: ^% e% @7 X0 R2 E! y
收藏 评论0 发布时间:2022-2-14 21:22

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版