kebao_1 发表于 2018-7-16 09:12:37

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]
查看完整版本: stm32f4/l4 LSM303DLHC库bug?