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

相关推荐
独小乐9 小时前
012.整体框架适配SDRAM|千篇笔记实现嵌入式全栈/裸机篇
c语言·汇编·笔记·单片机·嵌入式硬件·arm·gnu
不吃鱼的羊9 小时前
ADC扫描组Scan Group
单片机
海砥装备HardAus10 小时前
飞控算法中双环串级PID深度解析:角度环与角速度环的协同机制
stm32·算法·无人机·飞控·串级pid
LCMICRO-1331084774610 小时前
长芯微LPC556D1完全P2P替代DAC8830,是引脚兼容的16位数模转换器,该系列产品为单通道、低功耗、缓冲电压输出型DAC
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·电压输出型dac
forAllforMe10 小时前
如何用定时器PWM产生SPWM?--电机驱动控制
嵌入式硬件
charlie11451419110 小时前
嵌入式C++教程实战之Linux下的单片机编程(9):HAL时钟使能 —— 不开时钟,外设就是一坨睡死的硅
linux·开发语言·c++·单片机·嵌入式硬件·c
钿驰科技10 小时前
水泵无刷电机驱动板如何实现恒压控制?
单片机·嵌入式硬件
xingzhemengyou110 小时前
STM32 DMA
stm32·单片机·嵌入式硬件
森利威尔电子-10 小时前
森利威尔 SL3160A 降压型 DC - DC 转换器:10V - 150V 宽输入,稳出 5V/2.5A
单片机·嵌入式硬件·集成电路·芯片·电源芯片
清风66666610 小时前
基于单片机与WiFi通信的教室人数与照明上位机监控系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业