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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版