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

相关推荐
d111111111d4 小时前
关于STM32的选项字节的问题:如果我通过操作指针把数据写在了单片机的选项字节区域那么换别的程序时候数据会进行变化吗?
笔记·stm32·单片机·嵌入式硬件·学习
steins_甲乙7 小时前
stm32入门篇2
stm32·单片机·嵌入式硬件
一枝小雨8 小时前
单片机内存布局管理:sct分散加载详解
stm32·单片机·嵌入式·编译链接·sct分散加载·单片机内存布局
小尧嵌入式9 小时前
基于HAL库实现ETH以太网
网络·arm开发·stm32·单片机·嵌入式硬件
逼子格10 小时前
硬件工程师成长之路——知识汇总(持续更新)
嵌入式硬件·proteus·硬件工程·ad·keil·电路仿真·硬件工程师面试
飞凌嵌入式11 小时前
飞凌嵌入式RK3568开发板的TFTP烧写文件系统指南
linux·嵌入式硬件·嵌入式
lingzhilab17 小时前
零知IDE——基于STM32F103RBT6与RFID-RC522的校园餐卡系统实现
stm32·单片机·嵌入式硬件
promising-w17 小时前
【stm32入门教程】GPIO输入之按键控制LED&光敏传感器控制蜂鸣器
stm32·单片机·嵌入式硬件
必胜的思想钢印18 小时前
修改主频&睡眠模式&停机模式&待机模式
笔记·stm32·单片机·嵌入式硬件·学习