在 STM32 嵌入式开发中,常用的数据类型可以分为以下几类(基于C语言和STM32库的定义):
1. 标准C语言基础类型
- 字符型:
char:8位字符/整数(范围:-128 ~ 127 或 0 ~ 255)。unsigned char:8位无符号整数(0 ~ 255),常用于字节操作。
- 整型:
short/int16_t:16位整数(-32768 ~ 32767)。int/int32_t:32位整数(默认长度,范围:-2^31 ~ 2^31-1)。unsigned int/uint32_t:32位无符号整数(0 ~ 4,294,967,295)。long:通常为32位(与int相同)。
- 布尔型:
bool:需包含<stdbool.h>,取值为true或false(底层为1或0)。
2. STM32库定义的类型
STM32标准库(如HAL库或标准外设库)中定义了以下常用类型:
- 固定位宽整数(需包含
<stdint.h>):uint8_t:8位无符号整数(等同于unsigned char)。uint16_t:16位无符号整数(等同于unsigned short)。uint32_t:32位无符号整数(等同于unsigned int)。int8_t、int16_t、int32_t:对应的有符号类型。
- 外设寄存器相关类型:
GPIO_PinState:表示GPIO引脚状态(如GPIO_PIN_SET或GPIO_PIN_RESET)。HAL_StatusTypeDef:HAL库函数返回状态(如HAL_OK、HAL_ERROR)。
- 结构体类型(用于配置外设):
GPIO_InitTypeDef:GPIO初始化配置结构体。UART_InitTypeDef:串口初始化配置结构体。
3. STM32硬件相关类型
- 指针类型:
- 用于直接操作寄存器的指针(如
__IO uint32_t*)。
- 用于直接操作寄存器的指针(如
- 位操作类型:
- 使用位域(Bit-field)或位掩码(如
#define GPIO_PIN_0 (0x0001U))。
- 使用位域(Bit-field)或位掩码(如
4. 特殊类型
- 枚举类型:
- 用于状态或模式选择(如
GPIO_Mode_TypeDef)。
- 用于状态或模式选择(如
- 联合体(Union):
- 用于寄存器位段的灵活访问(如
FLASH_TypeDef)。
- 用于寄存器位段的灵活访问(如
示例代码片段
#include <stdint.h>
#include "stm32f1xx_hal.h"
uint32_t counter = 0; // 32位无符号整数
GPIO_InitTypeDef GPIO_Config; // GPIO配置结构体
HAL_StatusTypeDef status; // HAL函数返回状态
// 直接操作寄存器
#define MY_REGISTER (*(__IO uint32_t*)0x20000000)
注意事项
- 位宽一致性:在操作寄存器或硬件外设时,务必使用
uintX_t类型确保位宽匹配。 - 跨平台兼容性:避免直接依赖
int或long的默认长度,优先使用stdint.h的类型。 - 内存优化:在资源受限的嵌入式系统中,选择最小位宽的类型以节省内存。
这些类型是STM32开发的基础,合理使用能提升代码可读性、可维护性和硬件兼容性。
STM32中数据类型定义的解释说明
u8 最大255 , u16最大65535 , 就这个意思u8 a=255 a+1=0 , u16 b=255 b+1=256
2023-01-03 15:46:59
plc数据类型怎么理解和应用
PLC(可编程逻辑控制器)是一种工业自动化设备,用于控制机械和工业过程。在PLC编程中,数据类型是非常重要的概念,因为它决定了程序中数据的存储和处理方式。正确理解和应用PLC数据类型是编写有效、可靠
2023-12-19 11:39:27
SQL 通用数据类型
SQL 通用数据类型 数据库表中的每个列都要求有名称和数据类型。Each column in a database table is required to have a name and a
2025-08-18 09:46:40
ARRAY 数据类型的变量
要求 全局数据块已打开。 操作步骤 要声明一个 ARRAY 数据类型的变量,请按以下步骤操作: 在“名称”(Name) 列中,输入变量的名称。 在“数据类型”列中输入“Array”数据类型。在此步骤
2023-07-06 11:08:02
F型PLC数据类型与标准PLC数据类型(UDT)之间的差别在哪?
可以像使用标准 PLC 数据类型 (UDT) 那样,声明和使用 F 型 PLC 数据类型 (UDT) 。可以在安全程序中以及标准用户程序中使用 F 型 PLC 数据类型 (UDT) 。
2023-08-27 09:54:26
什么是数据类型转换
常用的3种数据类型:1、Python数据类型第一种:字符串(str)。 2、Python数据类型第二种:整数(int)。 3、Python数据类型第三种:浮点数(float)。
2023-02-23 15:21:18
结构数据类型(Struct)及应用案例
Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 (UDT) 有以下缺点,所以建议需要使用Struct类型时,可以使用PLC数据类型(UDT)代替。
2022-07-27 16:10:55
Struct结构数据类型
Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC数据类型(UDT)等。
2022-07-25 17:02:04
Redis的数据类型有哪些
Redis的数据类型有哪些?有五种常用数据类型:String、Hash、Set、List、SortedSet。以及三种特殊的数据类型:Bitmap、HyperLogLog、Geospatial
2023-10-09 10:51:05
编程语言SCL中ANY数据类型
ANY数据类型 在编程语言 SCL 和 STL 中,如果在块参数中设定了一个 ANY 指针,则任意类型的存储器都可以在块调用时传递。 但是,ANY 指针不能存储有关存储器结构的任何信息。例如,ANY
2021-05-25 11:02:33
SpinalHDL中Bundle数据类型的转换
SpinalHDL中Bundle与SystemVerilog中的packed struct很像,在某些场景下,与普通数据类型之间的连接赋值可以通过asBits,assignFromBits来实现。
2022-10-17 09:51:40
GaussDB 数据类型介绍
进行数据类型转换,以满足不同的需求。本文将以示例的形式罗列并介绍一些常见的数据类型转换方法等。 数据类型概念及特点 数据类型是一组值的集合以及定义在这个值集上的一组操作。GaussDB 数据库是由表的集合组成的,而各表中的列定义了该表,每一列都属于一种数据类型,Gauss
2023-06-05 16:40:06
1.2FreeRTOS中的数据类型
1.2FreeRTOS中的数据类型2017.2.1书zzwFreeRTOS 主要自定义了以下四种数据类型:TickType_t如果用户使能了宏定义configUSE_16_BIT_TICKS,那么
wdc596933938
2020-07-22 23:27:38
西门子博途:使用PLC数据类型 (UDT)
PLC 数据类型 (UDT) 是可自行定义且在程序中可以多次使用的数据结构。 此结构可包含不同数据类型的多个元素。 声明 PLC 数据类型期间,可以定义各个元素的数据类型。
2023-07-12 17:36:05
oracle的数据类型有哪些
Oracle数据库中有许多数据类型可供选择,每种数据类型都有其各自的特点和适用场景。下面是对Oracle数据库中最常用的数据类型的详尽说明,包括数值类型、字符类型、日期类型、大对象类型和其他类型
2023-12-05 16:45:16
西门子博途F型PLC数据类型与标准PLC数据类型的差别
可以像使用标准 PLC 数据类型 (UDT) 那样,声明和使用 F 型 PLC 数据类型 (UDT) 。可以在安全程序中以及标准用户程序中使用 F 型 PLC 数据类型 (UDT) 。
2022-07-08 10:15:37
GaussDB数据类型转换介绍
数据类型转换在实际应用中非常常见。GaussDB 作为一款企业级分布式关系型数据库,在实际业务场景使用中,也会避免不了数据类型的转换。以下是一些数据类型转换的应用场景。
2023-06-05 16:29:11
基本数据类型分享
基本数据类型 基本数据类型:包括位、位序列、整数、浮点数、日期时间。此外字符也属于基本数据类型,请参见文档String与WString。 1.位和位序列 2.整数数据类型 3.浮点型实数数据类型 如
2023-06-13 14:14:16
结构数据类型Struct介绍
Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC数据类型(UDT)等。
2023-01-30 10:15:18
S71500 硬件数据类型的常量
硬件数据类型:硬件数据类型由 CPU 提供。可用硬件数据类型的数目取决于 CPU。 根据硬件配置中设置的模块存储特定硬件数据类型的常量。在用户程序中插入用于控制或激活已组态模块的指令时,可将这些可用常量用作参数。
2023-05-16 09:24:55
type( ) 函数查询数据类型是什么
常用的3种数据类型: Python数据类型第一种:字符串(str)。 Python数据类型第二种:整数(int)。 Python数据类型第三种:浮点数(float)。
2023-02-23 14:59:36
PLC 数据类型 (UDT) 的基本知识
说明 PLC 数据类型 (UDT) 是一种复杂的用户自定义数据类型,用于声明一个变量。这种数据类型是一个由多个不同数据类型元素组成的数据结构。其中,各元素可源自其它 PLC 数据类型、ARRAY,也
2023-09-10 09:46:05
SystemC中的数据类型概念
引起一个事件,要使用通知函数notify( ),语法如下: event_name. notify (参数); 或 notify (参数,event_name); SystemC中的数据类型 作为C++
2023-11-02 15:44:43
Windows -编程-数据类型
Windows -编程-数据类型Rust 中的每个值都有特定的数据类型,它告诉 Rust 指定了什么样的数据,以便它知道如何处理这些数据。我们将研究两种数据类型子集:标量和复合。诚接Windows
h1654156006.5038
2021-08-24 14:30:05