初级会员

- 积分
- 165
- 金钱
- 165
- 注册时间
- 2015-10-6
- 在线时间
- 25 小时
|
1金钱
GPIO_WriteBit与GPIO_SetBits,前面个是对一个io口进行写操作可以是写0或者写1,而后面一个可以对多个io口同时进行置位1
那么GPIO_WriteBit一点好处都没有了吗?这个函数
好有他是怎么配置的怎么用的
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
第三个参数是什么,这个#define IS_GPIO_BIT_ACTION(ACTION) (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET))是他的有效性,
到底怎么设置void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);这个函数呢第三个参数怎么设置
这样吗
///GPIO_WriteBits(GPIOx, GPIO_Pin_i,1); ——对一个端口进行写1(也可以写0,把括号内的1改为0即可)操作
///GPIO_Write(GPIOA, 0x1101);——向指定GPIO数据端口写入数据
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
{
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
assert_param(IS_GET_GPIO_PIN(GPIO_Pin));
assert_param(IS_GPIO_BIT_ACTION(BitVal));
////下面这句话是什么意思
if (BitVal != Bit_RESET)
{
GPIOx->BSRR = GPIO_Pin;
}
else
{
GPIOx->BRR = GPIO_Pin;
}
}
|
最佳答案
查看完整内容[请看2#楼]
GPIO_WriteBit: 向单个引脚写0或1,举例:
GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET); //将PA3置为1
GPIO_WriteBit(GPIOB, GPIO_Pin_2, Bit_RESET); //将PB2置为0
第三个参数是一个枚举:
[mw_shl_code=c,true]typedef enum
{ Bit_RESET = 0,
Bit_SET
}BitAction;[/mw_shl_code]
GPIO_SetBits: 将某同组引脚一个或多个同时置为1,举例
GPIO_SetBits(GPIOB, GPIO_Pin_2); //将PB2置为1
GPIO_SetBits(GPIOA, ...
|