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

STM32CubeMX F4xx USB-CDC例程,GCC踩坑

[复制链接]
radio2radio 提问时间:2021-1-13 19:34 /
因为移植一包STM32的程序,要用到USB-CDC功能,和arm-none-eabi-gcc编译器。随发现STM32CubeMX产生的CDC底包,在STM32F4xx上面,有问题。 先看看问题:

用STM32CubeMX,开一套F407的CDC(VCP)程序,分别用MDK和SW4STM32产生底包。
只加了一条打印语句CDC_TransmitFS(),发送HelloWorld字串到PC串口。
编译结果,MDK的一切正常。 SW4STM32的,PC端有VCP串口但是打不开,当然也收不到MCU的发送。

看来STM32CubeMX产生的底包,有Bug!!!

上面一样的做法,在F103的情况下,就都没有问题。

已解决,参考下面的回复。
收藏 评论8 发布时间:2021-1-13 19:34

举报

8个回答
废鱼 回答时间:2021-1-13 20:46:01
我测试是正常的,虚拟串口正常使用。CDC作为主机,只能枚举到从设备的节点,后续不知道如何处理了。我用的是标准库+USB标准驱动。
radio2radio 回答时间:2021-1-13 20:56:39
安 发表于 2021-1-13 20:46
我测试是正常的,虚拟串口正常使用。CDC作为主机,只能枚举到从设备的节点,后续不知道如何处理了。我用的 ...

我说的是CubeMX+GCC,你用标准库试来干啥。 请用CubeMX。

同样是CubeMX,F103就没有问题。
radio2radio 回答时间:2021-1-14 00:00:35
安 发表于 2021-1-13 20:46
我测试是正常的,虚拟串口正常使用。CDC作为主机,只能枚举到从设备的节点,后续不知道如何处理了。我用的 ...

刚刚又进行了一些测试,发现问题肯定是发生在最新版的CubeMX+最新版的Fw_F4_v1.25.2之上。

网上找到的旧版的包,就没有这个问题:
https://github.com/vanbwodonk/STM32F407_DFU_BOOT

废鱼 回答时间:2021-1-14 08:53:08
我的意思和GCC没有关系,我只是说我测试的过程和范围。我用GCC也没有问题,用的是Atollic TrueSTUDIO。
zsdonline 回答时间:2021-1-14 11:27:13
学习
radio2radio 回答时间:2021-1-14 22:21:55
安 发表于 2021-1-14 08:53
我的意思和GCC没有关系,我只是说我测试的过程和范围。我用GCC也没有问题,用的是Atollic TrueSTUDIO。 ...

我今天又测试了一下:
主要集中测试,最新版的CubeMX+最新版的Fw_F4_v1.25.2

MDK-ARM, Advanced, AC6,OK
MDK-ARM, Basic,       AC6,OK,  要把Heap加大
TrueSTUDIO, Advanced, GCC, OK,需要修改
TrueSTUDIO, Basic,       GCC, OK,需要修改

问题是,PC可以枚举成功串口,可是打不开串口,用打印语句CDC_TransmitFS()发送字串到PC当然也不行。

参考下面的,修改usbd_cdc_if.c,TrueSTUDIO的问题基本解决,不知道为什么MDK的code就不要这样修改:
https://stackoom.com/question/3w ... 0%E9%97%AE%E9%A2%98
https://stackoverflow.com/questi ... braries-for-stm32f4

废鱼 回答时间:2021-1-15 08:56:43
可能是枚举的过程哪儿丢失了数据,建议用USB抓包工具进行抓包,分析一下原因,另外,在枚举过程中不要加断点。
radio2radio 回答时间:2021-1-19 10:29:57
安 发表于 2021-1-15 08:56
可能是枚举的过程哪儿丢失了数据,建议用USB抓包工具进行抓包,分析一下原因,另外,在枚举过程中不要加断 ...

搞掂了。 参考上面的链接,增加linecoding的定义就可以了。

但还是留下来悬念,同是CubeMX产生的代码,MDK就不需要修改。
GCC的(SW4STM32,TrueSTUDIO,Makefile,等)都需要对应修改。 这以后就麻烦了, 慎用GCC?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版