gpio_bit_set 和gpio_bit_reset如何实现? 到这里,我们已经分许过GPIO模式的具体配置流程,相信大家已经对GPIO_CTL寄存器有了深入的了解,下面我们再看gpio_bit_set和gpio_bit_reset这两个函数库是如何实现的? 其实很简单只是使用GPIO_BC和GPIO_BOP宏即可操作端口位操作寄存器 GPIOx_BOP和位清除寄存器 GPIOx_BC,库的实现方法如下: #define GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)
#define GPIO_BC(gpiox) REG32((gpiox) + 0x14U)
void gpio_bit_set(uint32_t gpio_periph,uint32_t pin)
{
GPIO_BOP(gpio_periph) = (uint32_t)pin;
}
void gpio_bit_reset(uint32_t gpio_periph,uint32_t pin)
{
GPIO_BC(gpio_periph) = (uint32_t)pin;
}
|