stm32f4/l4 LSM303DLHC库bug?
最近完stm32l4和f4系列,调试LSM303DLHC的时候,发现这段代码void LSM303DLHC_AccInit(uint16_t InitStruct)
{
uint8_t ctrl = 0x00;
/*Low level init */
COMPASSACCELERO_IO_Init();
/* Write value to ACC MEMS CTRL_REG1 register */
ctrl = (uint8_t) InitStruct;
COMPASSACCELERO_IO_Write(ACC_I2C_ADDRESS, LSM303DLHC_CTRL_REG1_A, ctrl);
/* Write value to ACC MEMS CTRL_REG4 register */
ctrl = (uint8_t) (InitStruct << 8);
COMPASSACCELERO_IO_Write(ACC_I2C_ADDRESS, LSM303DLHC_CTRL_REG4_A, ctrl);
}在 “ctrl = (uint8_t) (InitStruct << 8);” 中InitStruct 的移位是反的。这个代码路径在
STM32Cube\Repository\STM32Cube_FW_L4_V1.12.0\Drivers\BSP\Components\lsm303dlhc和
STM32Cube\Repository\STM32Cube_FW_F4_V1.21.0\Drivers\BSP\Components\lsm303dlhc两个库中都出现了。
将代码改为“ctrl = (uint8_t) (InitStruct >> 8);”后,代码运行正常,可以配置LSM303DLHC。
但是………………………………………………………………………………………………
是bug?还是我理解错了??
页:
[1]