打印
[开发工具]

STM32CubeMX更新HAL库版本之后生成代码有bug?

[复制链接]
2922|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kevicki|  楼主 | 2017-2-11 15:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用STM32F030R8,本来用的是STM32Cube FW_F0 V1.6.0版本的固件库,用STM32CubeMX生成初始化代码很方便也没出过问题。

前几天软件提示HAL库有更新,把project更新到STM32Cube FW_F0 V1.7.0版本,重新生成代码,什么都没改,发现PWM跑不起来了,一看原来是GPIO的Init少了GPIO_InitStruct.Alternate的定义。

问题的定位和修改比较简单,不过比较担心会不会还有其他什么坑而没有发现呢。

不知道这是普遍的bug还是我自己的问题。
沙发
mintspring| | 2017-2-11 16:52 | 只看该作者
是不是新的库函数使用了其他的函数

使用特权

评论回复
板凳
kevicki|  楼主 | 2017-2-11 17:16 | 只看该作者
mintspring 发表于 2017-2-11 16:52
是不是新的库函数使用了其他的函数

应该不是,只是GPIO的初始化结构体少了一行给Alternate赋值的代码,就是下面这个
        GPIO_InitStruct.Pin = GPIO_PIN_5;
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Pull = GPIO_PULLDOWN;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
        GPIO_InitStruct.Alternate = GPIO_AF1_TIM3; ----------------------用新的库自动生成的代码少了这一行
        HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

我感觉是STM32CubeMX自动生成代码的逻辑除了问题。不知道还有没有其他的坑。

也借此问一下,有什么方式能够在平时开发的过程中得到ST官方的技术支持呢?比如把这个问题反馈一下。就像TI的那个support论坛一样。

使用特权

评论回复
地板
heisexingqisi| | 2017-2-12 21:16 | 只看该作者
kevicki 发表于 2017-2-11 17:16
应该不是,只是GPIO的初始化结构体少了一行给Alternate赋值的代码,就是下面这个
        GPIO_InitStruc ...

在那个函数的原型里有这个变量没, HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 就是这个函数的原型里,看看是有没有那个变量。。

使用特权

评论回复
5
heisexingqisi| | 2017-2-12 21:17 | 只看该作者
以函数原型为准,如果那个里面前面没有定义这个,函数原型定义了,就应该有。否则如果内部实现时候也是漏了这个,就是采用了默认值。当然了,我们也可以给它稍作修改,改成以前的那种。

使用特权

评论回复
6
sdlls| | 2017-2-12 23:46 | 只看该作者
你看看固件库里面的内容有改变吗

使用特权

评论回复
7
sdlls| | 2017-2-12 23:48 | 只看该作者
现在的还是用的以前的FW固件库。

使用特权

评论回复
8
huangcunxiake| | 2017-2-13 10:20 | 只看该作者
是不是升级的版本出了问题。实在不行卸载了,安装原来的。

使用特权

评论回复
9
kevicki|  楼主 | 2017-2-14 15:38 | 只看该作者
heisexingqisi 发表于 2017-2-12 21:17
以函数原型为准,如果那个里面前面没有定义这个,函数原型定义了,就应该有。否则如果内部实现时候也是漏了 ...

是的,函数原型里面是有的,就是相当于使用了默认值。

使用特权

评论回复
10
kevicki|  楼主 | 2017-2-14 15:39 | 只看该作者
sdlls 发表于 2017-2-12 23:46
你看看固件库里面的内容有改变吗

还不是固件库的问题,是固件库的使用问题,因为STM32CubeMX也是使用固件库自动生成的外围代码。

使用特权

评论回复
11
kevicki|  楼主 | 2017-2-14 15:39 | 只看该作者
huangcunxiake 发表于 2017-2-13 10:20
是不是升级的版本出了问题。实在不行卸载了,安装原来的。

嗯,不知道是不是升级的原因,回退一下试试吧。

使用特权

评论回复
12
tatiyixi| | 2017-3-24 18:45 | 只看该作者
kevicki 发表于 2017-2-14 15:39
嗯,不知道是不是升级的原因,回退一下试试吧。

问题解决的吗?

使用特权

评论回复
13
tatiyixi| | 2017-3-24 18:48 | 只看该作者
我也遇到这个问题,使用stm32cubemx生成的程序跑不起来。用的TIM1的channel1,channel2,channel3,channel4.生成的代码也没 GPIO_InitStruct.Alternate = GPIO_AF2_TIM1。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

158

帖子

0

粉丝