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

STM32L0 固件库BUG

[复制链接]
二手烟 发布时间:2015-7-23 13:51
STM32L0XXX系类  ST官网提供的固件库文件“stm32l0xx_hal_gpio.c” 第259行存在错误:3 K7 T" w7 p$ s- W, ]
1、错误代码如下图:  运算符的优先级导致
- a; b' ^9 Y+ h2 E' @! j) Z7 y' K# O5 m( f. u5 E! I
G5]L1X8[MV}5(0F@C)UFC74.png $ X' [  i2 P" Z' |, T1 o+ ]; S: V
( i4 F$ e; b& I9 l4 c, e
2、修改后正确代码如下图:
- U- \- Q  A( L HP[}UV7DHGIYTU)JMOX{XF5.png
" B! H- j( k. N9 |

& T2 Z" ?& ]3 c2 w# g) O1 f8 z) d
赞 收藏 评论9 发布时间:2015-7-23 13:51

举报

9个回答
moyanming2013 回答时间:2015-7-23 15:22:07
苏柚 发表于 2015-7-23 14:064 u/ R# y" D4 j. I
谢谢分享

9 M4 M4 ?: ], Z, x* n! \* ~: L5 H1 WLZ你改错了!
+ l9 p1 \! @0 g如果单单考虑优先级(先不考虑“错误”)的话,你把原意搞错了:
3 ?% N+ M, R. a) O3 s1 m6 l
  1. temp &= ~((uint32_t) 0x0F)//此处是对
    - x: _( `# \) i+ E* v
  2. //0x0F取非,后面的暂且不论,看你改的:# e. f6 t+ U) `
  3. temp &= ~(((uint32_t)0x0F) << (...));//你
    1 w2 N! N' M/ B& A) e
  4. //对这个表达式取非了!
    + t: n' W( r4 S, o, U$ D6 p
复制代码

2 \; Y* }, O! r' x一般情况下这些库是经过了审核的,不太容易会出现错误,即是是bug也是非常晦涩的地方,不太容易在这种地方出错,要先从自身找问题。
二手烟 回答时间:2015-7-23 16:01:16
moyanming2013 发表于 2015-7-23 15:22- W) D7 Y( I7 R' _2 @4 i" q
LZ你改错了!0 \3 `) C/ |3 i0 z1 }( _* t
如果单单考虑优先级(先不考虑“错误”)的话,你把原意搞错了:

. A. F1 V7 e# ?3 r这句代码是意思是把相应的控制位清零,你这样看就可以看出问题了!
+ r" X1 U1 u+ O* Z0 o1 \这个代码是根据实际使用发现的问题!  会影响到外部中断的设置!
creep 回答时间:2015-7-23 16:14:12
moyanming2013 发表于 2015-7-23 15:22
* R1 F$ Q$ k5 |; X! [LZ你改错了!
7 [- U  ^, G! \5 J/ i& G如果单单考虑优先级(先不考虑“错误”)的话,你把原意搞错了:
' I* b- h9 S( z; H4 H$ @- o5 ~
这个地方可能的确有点问题,在其他的系列芯片HAL库比如F4的就是和楼主位第二张图片修改的那样,估计是ST的人搞错了。# D, L& U9 e% j2 h+ X3 E
LVX.m 回答时间:2015-7-23 16:36:26
二手烟 发表于 2015-7-23 16:01
; A' ~) L+ x) o2 q& \" F这句代码是意思是把相应的控制位清零,你这样看就可以看出问题了!
5 P$ A* I# _* z这个代码是根据实际使用发现的问题!  ...

3 d% W3 w( [& n* P楼主说的 这个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
8 t3 T6 k/ Y6 J" n7 X7 P4 ^这个地方可能的确有点问题,在其他的系列芯片HAL库比如F4的就是和楼主位第二张图片修改的那样,估计是ST ...
% ^" x$ v6 ~# Q% w, J
难道说cube中真是存在某些问题么,那么lz使用的cube版本更新到最新看看?
creep 回答时间:2015-7-24 16:11:10
moyanming2013 发表于 2015-7-24 16:00
/ @1 }) Q' @; w3 x" r8 N0 w难道说cube中真是存在某些问题么,那么lz使用的cube版本更新到最新看看?
# B6 y; t& c0 b3 r( A
是的,问题还不少呢。之前群里有个妹子说HAL库的SPI有问题调不通,最后也是库的问题。
3 Y+ D4 \, F+ S# O% ucube stm32f0的1.2.1的驱动库有问题,spi调不通
moyanming2013 回答时间:2015-7-24 16:46:24
creep 发表于 2015-7-24 16:11
: \8 i1 {0 o" {是的,问题还不少呢。之前群里有个妹子说HAL库的SPI有问题调不通,最后也是库的问题。  \3 `( c: U& f3 L) t, s; Q' l; \
cube stm32f0的1.2 ...

8 J' G( L* p0 V2 L% p+ ~嗯,她也是更新cube后成功的。常更新会修复一些库问题的。
" C8 J' I) |5 ], O9 W. M当然也不能全信cube,调试时应该逐行调一下。

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版