-
typedef signed char int8_t;//-128到127
typedef signed short int int16_t;//-32768到32767
typedef signed int int32_t;//-2147483648到2147483647即-0x7fff fffff到0x7ffff ffff
typedef signed __INT64 int64_t;-0x7fff ffff ffff ffff到0x7fff ffff ffff ffffftypedef unsigned char uint8_t;//255 0xff
typedef unsigned short int uint16_t;//65535 0xffff
typedef unsigned int uint32_t;//0xffff ffff
typedef unsigned __INT64 uint64_t;//0xffff ffff ffff ffff
变量的字节数是指2的几次方,比如8位字节变量,如果unsigned,就是0到2的8次方,如果signed,就是负的2的7次方到2的7次方 -
typedef 用于为现有类型创建一个新的名字,或成为类型别名,用来简化变量的定义。比如可以定义结构体的类型别名和枚举类型。
struct_GPIO
{
_IO uint32_t MODER;
_IO uint32_t OTYPER;
……
}
struct _GPIO GPIOA;//定义结构体变量GPIOA
但是这样很繁琐, MDK 中有很多这样的结构体变量需要定义。这里我们可以为结体定义一个别名 GPIO_TypeDef,这样我们就可以在其他地方通过别名 GPIO_TypeDef 来定义结构体变量了。方法如下:
typedef struct
{
_IO uint32_t MODER;
_IO uint32_t OTYPER;
……
}GPIO_TypeDef; //Typedef 为结构体定义一个别名 GPIO_TypeDef,这样我们可以通过 GPIO_TypeDef 来定义结构体变量
GPIO_TypeDef_GPIOA,_GPIOB;//这里的GPIO_TypeDef 就跟 struct _GPIO 是等同的作用了 。 -
结构体
注意几个概念,结构体变量,结构体成员变量,结构体名字,结构体指针
结构体名字和结构体变量不同,结构体变量可以当做变量引用,但是结构体名字不可以。
结构体成员变量的引用方法:结构体变量.成员名,如GPIOA.Mode。不同于结构指针名-> 结构成员。
struct string
{
char name[8];
char sex[4];
int age;
char addr[40];
}*student;
这时student->name 就是 (*student).name -
&和*
&是通过变量取地址,*是通过地址取值 -
使LED亮,引脚需要输出高电平,且需要输出电流,要用推挽输出模式,如果开漏输出模式,回路中不会有电流
-
记得首先配置RCC(时钟配置)
STM32学习 第二天
最新推荐文章于 2024-03-17 22:09:47 发布