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 函数返回状态

相关推荐
国科安芯13 分钟前
基于ASM1042S2S的箭载通信网络抗辐射加固方案研究
服务器·网络·嵌入式硬件·fpga开发·架构·信号处理
小殷学长20 分钟前
【单片机毕业设计25-基于stm32的导盲眼镜设计】
stm32·单片机·课程设计
辰哥单片机设计26 分钟前
STM32智能病房呼叫系统
stm32·单片机·嵌入式硬件
cft56200_ln1 小时前
gPTP Master 报文的源 MAC 地址
嵌入式硬件
蓝天居士2 小时前
HLW8112芯片软件实现代码(2)
单片机·嵌入式·芯片资料
水利行业RTU手艺人16 小时前
RTU固件中的“数据保险箱”——离线数据补发系统设计
c++·stm32·单片机·物联网
2301_7931210418 小时前
基于单片机的水平角度仪系统设计
单片机·嵌入式硬件
KaifuZeng19 小时前
通信与接口协议面试十、PCIe
单片机·嵌入式硬件·面试·通信与接口协议
lzx1864884370219 小时前
【AH8966】可替代 KP3211 非隔离 AC110220V转12V 0.5A 降压转换芯片
人工智能·单片机·嵌入式硬件·集成测试·硬件工程·ic
csg110720 小时前
PIC单片机防破解:从硬件到软件的全面防护
单片机·嵌入式硬件·物联网·自动化