初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2016-5-16
- 在线时间
- 8 小时
|
菜鸟一枚,刚开始接触STM32的开发板。关于库函数和位带操作有个疑惑:
#define LED0 PBout(5)// PB5
#define LED1 PEout(5)// PE5
上面的两个语句是位带操作的,可以直接对PB5和PE5进行赋值,于是可以有下面这样的赋值操作:
LED0=0;
LED1=0;
我现在的理解是,如果没有上面的宏定义,直接进行库函数操作的话,可以用下面的两个句子:
GPIO_ReSetBits(GPIOB,GPIO_Pin_5);
GPIO_SetReBits(GPIOE,GPIO_Pin_5);
这样的赋值操作,我觉得库函数也还算方便,但是,遇到下面的句子,我就不知道怎么办了:
LED0=!LED0;
像这样的数值反转,如何通过库函数来实现呢?
试图用下面的句子来实现:
#define LED0 GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_5)
#define LED1 GPIO_ReadOutputDataBit(GPIOE, GPIO_Pin_5)
但是,我的理解是上面的两个句子是读取IO口的输出,只能对输出的数值进行判定吧,好像没有直接赋值的功能呢。
看了sys.h里面的程序,好像 #define LED0 PBout(5)// PB5
#define LED1 PEout(5)// PE5
这两个句子是将对应的地址进行定义,所以能直接赋值。如果不用sys.h的话,如何定义能够直接赋值的LED0和LED1呢??
|
|