学习记录
STM32 中 u8 :unsigned char u16 : unsigned short u32: unsigned int
unsigned char uint8_t unsigned short int uint16_t unsigned int uint32_t
unsigned char = uint8_t =u8
unsigned short int = uint16_t =u16
unsigned long int =uint32_t =u32
一、符号不同
1、u8:u8表示无符号char字符类型。
2、u16:u16表示无符号short短整数类型。
3、u32:u32表示无符号int基本整数类型。
4、int:int表示带符号int基本整数类型。
二、数据范围不同
1、u8:u8的数据范围为0~+127[0~2^8-1]。
2、u16:u16的数据范围为0~+65535[0~2^16-1]。
3、u32:u32的数据范围为0~+2147483647[0~2^32-1]。
4、int:int的数据范围为-2147483648~+2147483647[-2^31~2^31-1]。
三、内存占用空间不同
1、u8:u8的内存占用空间大小为只占一个字节。
2、u16:u16的内存占用空间大小为占用两个字节。
3、u32:u32的内存占用空间大小为占用四个字节。
4、int:int的内存占用空间大小为占用八个字节。
u8是unsigned char,u16是unsigned short,u32是unsigned long。
u8,u16,u32都是C语言数据类型,分别代表8位,16位,32位长度的数据类型,一个字节是8位,所以u8是1个字节,u16是2个字节,u32是4个字节。
可以在stm32库头文件中找到数据类型的声明
在stdint.h中:
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
在stm32f10x.h 中:
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
STM32引脚配置的几种模式及用法解释
1、 浮空输入(默认状态):GPIO_Mode_IN_FLOATING
引脚自身视为开路,电平由外部电路决定,不能输出;
2、上拉输入:GPIO_Mode_IPU
与浮空输入类似,但当外部电平不确定时,会被拉至高电平;
3、下拉输入:GPIO_Mode_IPD
与浮空输入类似,但当外部电平不确定时,会被拉至低电平;
4、 模拟输入:GPIO_Mode_AIN
用作内部AD采样脚;
5、 通用开漏输出:GPIO_Mode_OUT_OD
输出0为低电平,输出1为高阻态,电平由外部电路决定,可以读出引脚状态;
6、 通用推挽输出:GPIO_Mode_OUT_PP
输出0为低电平,输出1为内部电源电平(3.3V);
7、 复用开漏输出:GPIO_Mode_AF_OD
由复用外设控制输出,效果与通用开漏输出一致
8、复用推挽输出:GPIO_Mode_AF_PP
由复用外设控制输出,效果与通用推挽输出一致;
typedef enum
{
GPIO_Mode_AIN = 0x0, //模拟输入
GPIO_Mode_IN_FLOATING = 0x04, //浮空输入
GPIO_Mode_IPD = 0x28, //下拉输入
GPIO_Mode_IPU = 0x48, //上拉输入
GPIO_Mode_Out_OD = 0x14, //开漏输出
GPIO_Mode_Out_PP = 0x10, //推挽输出
GPIO_Mode_AF_OD = 0x1C, //复用开漏输出
GPIO_Mode_AF_PP = 0x18 //复用推挽输出
}GPIOMode_TypeDef;