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

【实战经验】STM32F746ZG USB 驱动不正常

[复制链接]
zero99 发布时间:2016-7-15 05:57
STM32F746ZG USB 驱动不正常
' Q# v  S% z' J! b# _# M! y
. U* t/ ~0 Y1 [# a前言3 s8 ~& q& Z% `! l" v9 y
某客户的产品,需要评估NUCLEO-F746ZG板上的USB功能,使用cube Version 4.15.1 版本工具生成工程,但在win7和win10上遇到驱动不正确。
, I+ ?' S6 u2 m% t+ U 1.png
' |! e7 T  U+ T. _2 E0 E# I, A$ {6 y& e6 _6 H8 _, I4 D4 f
使用32F411 或F407时枚举及驱动,都很正常1 T! @; d$ G( `, w" }0 D1 M" D
2.png
) y# {& `$ o+ s0 p: O. B9 l' J# _/ Z) P5 A) _) K- o0 j* E
一、 测试& L. U* M- `8 g: b2 N
1.1. IDE 环境
- |1 j% c$ a3 ~Embeded workbench for ARM v7.303 c9 ^# B/ l- m( @8 F/ N: P8 |1 N
1.2. 修改堆栈大小
1 L4 R' g0 _) _$ i1 H原heap为0x200,调整到400时可正常使用,如下图:% @" q7 q# d# o" {( g
3.png
- S% j. i! e/ y( d- Y3 _1 j1 v& }; T9 x  d: H
PC机上正常,如下图:
: K" {+ W3 T2 i# T; f; y% g 4.png ! n2 f4 A( {: K: R  e

7 G+ d" J; e1 S/ j1.3. 修改编译选项
# y& a! E' w9 y+ ~( s* j在IAR编译选项中,选择检查heap,如下图:
  Q% }8 Q/ T* ] 5.png + M6 f% P# @  [- s/ A. o
. N" G6 y" j2 D2 {7 K9 {  t+ d1 N
编译执行中发现在USB_CDC.c 文件中第517行分配内存时超过0x200大小,如下图:# V- }  P, @. C1 l3 W: U
6.png
3 [+ H  G2 P& l
# Q. }& F; e8 d! S+ Q& v二、 结论
: R& N3 M( }* e应该是驱动代码占用了堆空间不够导致的程序不正常。
1 _2 Z+ J* ~' Q, m" b( k4 I- a) S. N. d+ p

5 I/ |( ]( v$ H; ]4 R文档下载地址:
6 y8 R. X% F% f. d
https://www.stmcu.org.cn/document/list/index/category-10383 G4 X+ D9 C3 U3 X  U* w7 Y$ Y

+ h. S" K9 l- x( F# E# F7 K实战经验汇总:8 a- f: w/ O" e3 d+ \( e
https://www.stmcu.org.cn/module/forum/thread-576401-1-1.html
' l# n" h2 L6 O# `
( X6 n" N5 G! j5 s- r( k2 z" ~
收藏 评论0 发布时间:2016-7-15 05:57

举报

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