打印

GPIO_SetBits 和 GPIO_WriteBit有什么差别吗

[复制链接]
18767|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cd4066|  楼主 | 2012-5-29 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GPIO_SetBits 和 GPIO_WriteBit有什么差别吗?
看说明,只要参数对,二合可以达到同样的效果
沙发
香水城| | 2012-5-29 11:58 | 只看该作者
看看库里的源码就知道了:

/**
* @brief Sets the selected data port bits.
* @param GPIOx: where x can be (A..G) to select the GPIO peripheral.
* @param GPIO_Pin: specifies the port bits to be written.
* This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
* @retval None
*/
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
assert_param(IS_GPIO_PIN(GPIO_Pin));

GPIOx->BSRR = GPIO_Pin;
}

/**
* @brief Clears the selected data port bits.
* @param GPIOx: where x can be (A..G) to select the GPIO peripheral.
* @param GPIO_Pin: specifies the port bits to be written.
* This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
* @retval None
*/
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
assert_param(IS_GPIO_PIN(GPIO_Pin));

GPIOx->BRR = GPIO_Pin;
}

/**
* @brief Sets or clears the selected data port bit.
* @param GPIOx: where x can be (A..G) to select the GPIO peripheral.
* @param GPIO_Pin: specifies the port bit to be written.
* This parameter can be one of GPIO_Pin_x where x can be (0..15).
* @param BitVal: specifies the value to be written to the selected bit.
* This parameter can be one of the BitAction enum values:
* @arg Bit_RESET: to clear the port pin
* @arg Bit_SET: to set the port pin
* @retval None
*/
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;
}
}
 

使用特权

评论回复
板凳
hsbjb| | 2012-5-29 15:17 | 只看该作者
比较一下库里的源码

使用特权

评论回复
地板
无冕之王| | 2012-5-29 15:30 | 只看该作者
对比一下香主给的源码,区别应该很明显了

使用特权

评论回复
5
拿起书本| | 2012-5-29 22:12 | 只看该作者
GPIO_WriteBit与GPIO_SetBits,前面个是对一个io口进行写操作可以是写0或者写1,而后面一个可以对多个io口同时进行置位1

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

113

帖子

0

粉丝