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

相关推荐
想放学的刺客17 分钟前
单片机嵌入式试题(第27期)设计可移植、可配置的外设驱动框架的关键要点
c语言·stm32·单片机·嵌入式硬件·物联网
天昊吖33 分钟前
stc8H启用DMA发送后 卡住【踩坑日志】
单片机
李永奉40 分钟前
杰理芯片SDK开发-ENC双麦降噪配置/调试教程
人工智能·单片机·嵌入式硬件·物联网·语音识别
BackCatK Chen1 小时前
第 1 篇:软件视角扫盲|TMC2240 软件核心特性 + 学习路径(附工具清单)
c语言·stm32·单片机·学习·电机驱动·保姆级教程·tmc2240
兆龙电子单片机设计1 小时前
【STM32项目开源】STM32单片机多功能电子秤
stm32·单片机·开源·毕业设计·智能家居
切糕师学AI1 小时前
ARM 架构中的复位(Reset)与复位流程
arm开发·单片机·嵌入式·复位
wotaifuzao2 小时前
STM32多协议网关-FreeRTOS事件驱动架构实战
stm32·嵌入式硬件·can·freertos·uart·modbus·spi
llilian_162 小时前
信号发生器 多通道多功能脉冲信号发生器应用解决方案 多功能脉冲发生器
功能测试·单片机·嵌入式硬件·测试工具
yuanmenghao2 小时前
Classic AUTOSAR深入浅出系列 - 【第十六篇】MCAL:为什么 MCU 换了,上层几乎不用动
单片机·嵌入式硬件·autosar
MickyCode4 小时前
嵌入式开发调试之Traceback
arm开发·stm32·单片机·mcu