Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stm32 在HAL库中定义样式_Stm32_Hal - Fatal编程技术网

Stm32 在HAL库中定义样式

Stm32 在HAL库中定义样式,stm32,hal,Stm32,Hal,在STM32代码中使用的HAL库中,我们看到使用了如下样式: #define I2C1 ((I2C_TypeDef *) I2C1_Base) 为什么这样使用define 为什么使用指针类型 为什么星星不在括号外 I2C1\u Base在其他地方声明,是一个十六进制数字 (I2C_TypeDef*)将I2C1_Base数字转换为指向I2C_TypeDef的指针,星形必须位于括号内,因为它转换为指针类型,如果它位于括号外,则它将是一个解引用,不会编译 定义允许这样的代码 I2C1-&

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

#define I2C1      ((I2C_TypeDef *) I2C1_Base)
  • 为什么这样使用define
  • 为什么使用指针类型
  • 为什么星星不在括号外

I2C1\u Base
在其他地方声明,是一个十六进制数字

(I2C_TypeDef*)
I2C1_Base
数字转换为指向
I2C_TypeDef
的指针,星形必须位于括号内,因为它转换为指针类型,如果它位于括号外,则它将是一个解引用,不会编译

定义允许这样的代码

I2C1->someRegister = 0xf00;

而不是每次都需要手动键入类型。

先学习C。了解一些关于微控制器的知识。没有这个答案,这个问题就毫无意义