STM32 常用数据类型

  1. C 标准固定宽度类型

这类类型定义在 <stdint.h> 、 <stdbool.h> 等标准头文件中,特点是位数固定,移植性好。

类型 位数 描述 常见用途

int8_t 8 有符号 8 位整数 小范围有符号数值存储

uint8_t 8 无符号 8 位整数 数据缓冲区、字节操作

int16_t 16 有符号 16 位整数 ADC 采样值、传感器数据

uint16_t 16 无符号 16 位整数 定时器计数值、短周期计数

int32_t 32 有符号 32 位整数 通用计算、较大数值存储

uint32_t 32 无符号 32 位整数 寄存器访问、长周期计数

int64_t 64 有符号 64 位整数 大数值运算

uint64_t 64 无符号 64 位整数 时间戳、大数据存储

bool 1 布尔值(true / false) 逻辑判断

使用建议:

优先使用这些类型替代 int 、 long 等依赖平台的类型。

缓冲区和字节流操作常用 uint8_t 。

逻辑判断尽量用 bool 或枚举,提高可读性。

  1. CMSIS 扩展类型

CMSIS(Cortex Microcontroller Software Interface Standard)是 ARM 公司为 Cortex-M 系列内核制定的标准接口,提供了一些方便底层编程的类型。

类型 描述 常见用途

volatile uint32_t 防止编译器优化的 32 位无符号整数 直接访问寄存器时使用

size_t 内存大小类型(通常为 32 位) sizeof 结果、内存函数参数

ptrdiff_t 指针差值类型 指针运算

使用建议:

对寄存器进行读写时,务必加 volatile 关键字,防止编译器优化导致值读取错误。

内存操作函数(如 memcpy 、 memset )参数用 size_t 。

  1. HAL/LL 库专用类型

HAL(Hardware Abstraction Layer)和 LL(Low-Layer)库中定义了大量枚举和结构体,用于描述外设状态和配置。

类型 用途

GPIO_PinState GPIO 电平状态

FlagStatus 标志位状态判断

FunctionalState 功能开关控制

ErrorStatus 错误状态返回

HAL_StatusTypeDef HAL 函数返回状态

相关推荐
somi71 天前
51单片机-02-中断系统
单片机·嵌入式硬件·51单片机·中断
逐步前行1 天前
STM32_SysTick_寄存器操作
stm32·嵌入式硬件·fpga开发
DLGXY1 天前
STM32(二十四)——PWR电源控制
stm32·单片机·嵌入式硬件
csg11071 天前
PIC单片机高阶实战(五):PIC32MX系列的数据存储
单片机·嵌入式硬件·物联网
GreenGoblin1 天前
12.DSP学习记录之SCI
单片机·dsp开发·电机控制
爱喝纯牛奶的柠檬1 天前
基于STM32的GPS NMEA解析驱动设计与实现
stm32·单片机·嵌入式硬件
v先v关v住v获v取1 天前
茶树修剪机结构设计2张cad+设计说明书+三维图
科技·单片机·51单片机
大志出奇迹1 天前
STM32常用变量类型位数及取值范围
stm32·单片机·嵌入式硬件
LCG元1 天前
STM32项目实战:基于STM32F103的智能循迹避障小车
stm32·单片机·嵌入式硬件
v先v关v住v获v取1 天前
NEXUS卡丁车前悬挂控制臂的结构建模与多工况受力分析5张cad+三维图+设计说明书
科技·单片机·51单片机