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
$ X' [ i2 P" Z' |, T1 o+ ]; S: V
( i4 F$ e; b& I9 l4 c, e
2、修改后正确代码如下图:
- U- \- Q A( L
" B! H- j( k. N9 |
& T2 Z" ?& ]3 c2 w# g) O1 f8 z) d |
LZ你改错了!
如果单单考虑优先级(先不考虑“错误”)的话,你把原意搞错了:
一般情况下这些库是经过了审核的,不太容易会出现错误,即是是bug也是非常晦涩的地方,不太容易在这种地方出错,要先从自身找问题。
这句代码是意思是把相应的控制位清零,你这样看就可以看出问题了!
这个代码是根据实际使用发现的问题! 会影响到外部中断的设置!
这个地方可能的确有点问题,在其他的系列芯片HAL库比如F4的就是和楼主位第二张图片修改的那样,估计是ST的人搞错了。# D, L& U9 e% j2 h+ X3 E
楼主说的 这个BUG 你仿真的时候 看寄存器状态 就能开出来了
难道说cube中真是存在某些问题么,那么lz使用的cube版本更新到最新看看?
是的,问题还不少呢。之前群里有个妹子说HAL库的SPI有问题调不通,最后也是库的问题。
cube stm32f0的1.2.1的驱动库有问题,spi调不通
嗯,她也是更新cube后成功的。常更新会修复一些库问题的。
当然也不能全信cube,调试时应该逐行调一下。