STM32 常量
在 STM32 编程中,常量是指在程序执行过程中其值不能被改变的数据。以下是关于 STM32 常量的相关介绍:
一、定义方式
- #define 预处理器指令
- 这是一种常见的定义常量的方式。例如:
#define LED_PIN GPIO_Pin_13
#define TIM_PERIOD 1000
-
其中,
LED_PIN
被定义为GPIO_Pin_13
,TIM_PERIOD
被定义为1000
。在预处理阶段,所有出现LED_PIN
和TIM_PERIOD
的地方都会被替换为相应的定义值。 -
const 关键字
- 使用
const
关键字可以在变量声明时将其定义为常量。例如:
- 使用
const uint32_t baudRate = 115200;
- 这里,
baudRate
被声明为一个const
的uint32_t
类型的常量,其值为115200
。与#define
不同,const
常量具有类型信息,并且在内存中有固定的存储位置。
二、常量的类型和应用场景
- 整型常量
- 在 STM32 中,整型常量可以用于表示计数器的值、寄存器地址偏移量等。例如:
uint32_t counter = 0;
while (counter < 1000) {
// 执行一些操作
counter++;
}
-
这里的
1000
就是一个整型常量,用于控制循环的次数。 -
浮点型常量
- 浮点型常量通常用于涉及到小数运算的场景,如在处理模拟信号转换(如 ADC 和 DAC)、PID 控制算法等方面。例如:
float kp = 0.5;
float ki = 0.1;
float kd = 0.05;
-
这些浮点型常量可以作为比例 - 积分 - 微分(PID)控制器的参数。
-
字符型常量
- 字符型常量在 STM32 编程中常用于表示 ASCII 字符或者作为字符串的组成部分。例如:
char startChar = 'S';
char message[] = "Hello STM32";
-
这里的
'S'
是一个字符型常量,"Hello STM32"
是一个字符串常量(本质上是字符数组)。 -
枚举常量
- 枚举类型可以定义一组相关的常量。例如:
enum LedState {
LED_OFF,
LED_ON,
LED_BLINKING
};
LED_OFF
、LED_ON
和LED_BLINKING
就是枚举常量,它们在程序中用于表示不同的 LED 状态。