#define WARM_KEY_PIN (GPIOC->IDR&(1<<5))
#define Speak(tmp) GPIOA->ODR=tmp?(GPIOA->ODR|1<<12):(GPIOA->ODR&(~(1<<12)))
(1)IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器。
1、->在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”。
2、用法:
p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员。表达式p->a引用了指针p指向的结构体的成员a。
3、例如:
#define Speak(tmp) GPIOA->ODR=tmp?(GPIOA->ODR|1<<12):(GPIOA->ODR&(~(1<<12)))
(1)IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器。
(2)1<<5表示:1左移5位(0000 0001---->0010 0000)
2、用法:
p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员。表达式p->a引用了指针p指向的结构体的成员a。
3、例如:
struct T { int a; char b; }s; struct T* p=&s; 那么,p->a相当于s.a。显然,有个等价写法:(*p).a,和p->a完全等效。