STM32 的基本数据类型主要包括以下几类:
-
整型:
-
有符号整型:
s8
(或int8_t
):占用 1 个字节,数据范围是 -128 到 127。常用于表示较小范围的有符号整数,比如一些简单的计数、状态标志(例如 -1 表示错误,1 表示正确等)。s16
(或int16_t
):占用 2 个字节,数据范围是 -32768 到 32767。适用于需要表示较大范围的有符号整数,比如一些传感器返回的有符号数值、短整数计算等。s32
(或int32_t
):占用 4 个字节,数据范围是 -2147483648 到 2147483647。在很多复杂的计算和数据处理中经常使用,例如一些需要较大数值范围的运算、长时间的计数等。int64_t
:占用 8 个字节,数据范围是 -9223372036854775808 到 9223372036854775807。。一般用于对数据范围要求非常大的场景,不过在 STM32 中使用相对较少,因为 STM32 的资源有限,使用如此大的数据类型可能会占用较多的内存和处理时间。
-
*无符号整型134*:
u8
(或uint8_t
):占用 1 个字节,数据范围是 0 到 255。常用于表示一些不需要负数的计数、状态标志(例如用 0 表示关闭,1 表示打开,其他数值表示其他特定状态)、字节数据等。u16
(或uint16_t
):占用 2 个字节,数据范围是 0 到 65535。可用于表示一些较大范围的无符号整数,比如一些计数器的值、需要较大范围的索引值等。u32
(或uint32_t
):占用 4 个字节,数据范围是 0 到 4294967295。常用于表示一些较大的无符号数值,例如一些数据的存储地址、较大的计数等。uint64_t
:占用 8 个字节,数据范围是 0 到 18446744073709551615。在 STM32 中使用较少,与int64_t
类似,当需要非常大的无符号数值范围时才会使用。
-
-
浮点型:
float
:占用 4 个字节,是有符号型,可以表达负数和小数。在 STM32 中,float
类型至少要能精确表示到小数点后 6 位,常用于一些需要表示小数的计算,比如温度、压力等传感器的数值转换、一些需要精确计算的比例值123等。double
:占用 8 个字节,也是有符号型,可以表达负数和小数。double
类型至少要能精确到小数点后 10 位,精度比float
更高,但在 STM32 中使用相对较少,因为其占用的内存较大,会消耗更多的资源。
-
字符型:
char
:在 C 语言中,char
类型占用 1 个字节。在 STM32 的编程中,char
类型既可以表示字符,也可以表示有符号或无符号的整数,具体取决于编译器的设置和代码的上下文。
此外,STM32 还使用了一些自定义的类型别名和结构体等数据类型,这些数据类型通常是基于上述基本数据类型进行定义和扩展的,以便更方便地操作 STM32 的硬件寄存器和进行相关的编程操作。