在HAL库中定义样式

时间:2018-02-27 14:34:13

标签: stm32 hal

在STM32代码中使用的HAL库中,我们看到使用了这样的样式:

#define I2C1      ((I2C_TypeDef *) I2C1_Base)
  • 为什么定义是这样使用的?
  • 为什么使用指针类型?
  • 为什么括号外没有星?

1 个答案:

答案 0 :(得分:2)

I2C1_Base在其他地方声明,并且是一个十六进制文字的数字。

(I2C_TypeDef *)I2C1_Base数字转换为指向I2C_TypeDef的指针,当它转换为指针类型时,星形需要在括号内,如果它在外面那么它会是一个解除引用,不会编译。

定义是允许像

这样的代码
I2C1->someRegister = 0xf00;

而不是每次都需要手动输入演员。