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

STM32L0 固件库BUG

[复制链接]
二手烟 发布时间:2015-7-23 13:51
STM32L0XXX系类  ST官网提供的固件库文件“stm32l0xx_hal_gpio.c” 第259行存在错误:
1、错误代码如下图:  运算符的优先级导致

G5]L1X8[MV}5(0F@C)UFC74.png

2、修改后正确代码如下图:
HP[}UV7DHGIYTU)JMOX{XF5.png

收藏 评论9 发布时间:2015-7-23 13:51

举报

9个回答
moyanming2013 回答时间:2015-7-23 15:22:07

LZ你改错了!
如果单单考虑优先级(先不考虑“错误”)的话,你把原意搞错了:
  1. temp &= ~((uint32_t) 0x0F)//此处是对
  2. //0x0F取非,后面的暂且不论,看你改的:
  3. temp &= ~(((uint32_t)0x0F) << (...));//你
  4. //对这个表达式取非了!
复制代码

一般情况下这些库是经过了审核的,不太容易会出现错误,即是是bug也是非常晦涩的地方,不太容易在这种地方出错,要先从自身找问题。
二手烟 回答时间:2015-7-23 16:01:16
moyanming2013 发表于 2015-7-23 15:22
LZ你改错了!
如果单单考虑优先级(先不考虑“错误”)的话,你把原意搞错了:

这句代码是意思是把相应的控制位清零,你这样看就可以看出问题了!
这个代码是根据实际使用发现的问题!  会影响到外部中断的设置!
creep 回答时间:2015-7-23 16:14:12
moyanming2013 发表于 2015-7-23 15:22
LZ你改错了!
如果单单考虑优先级(先不考虑“错误”)的话,你把原意搞错了:

这个地方可能的确有点问题,在其他的系列芯片HAL库比如F4的就是和楼主位第二张图片修改的那样,估计是ST的人搞错了。
LVX.m 回答时间:2015-7-23 16:36:26
二手烟 发表于 2015-7-23 16:01
这句代码是意思是把相应的控制位清零,你这样看就可以看出问题了!
这个代码是根据实际使用发现的问题!  ...

楼主说的 这个BUG 你仿真的时候 看寄存器状态 就能开出来了
stary666 回答时间:2015-7-23 18:01:27
最好不用,,,
党国特派员 回答时间:2015-7-24 09:44:57
看看。。。。
moyanming2013 回答时间:2015-7-24 16:00:20
creep 发表于 2015-7-23 16:14
这个地方可能的确有点问题,在其他的系列芯片HAL库比如F4的就是和楼主位第二张图片修改的那样,估计是ST ...

难道说cube中真是存在某些问题么,那么lz使用的cube版本更新到最新看看?
creep 回答时间:2015-7-24 16:11:10
moyanming2013 发表于 2015-7-24 16:00
难道说cube中真是存在某些问题么,那么lz使用的cube版本更新到最新看看?

是的,问题还不少呢。之前群里有个妹子说HAL库的SPI有问题调不通,最后也是库的问题。
cube stm32f0的1.2.1的驱动库有问题,spi调不通
moyanming2013 回答时间:2015-7-24 16:46:24
creep 发表于 2015-7-24 16:11
是的,问题还不少呢。之前群里有个妹子说HAL库的SPI有问题调不通,最后也是库的问题。
cube stm32f0的1.2 ...

嗯,她也是更新cube后成功的。常更新会修复一些库问题的。
当然也不能全信cube,调试时应该逐行调一下。

所属标签

相似技术帖

官网相关资源

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