我的代码没有将GPIO设置为我的Nucleo-G071RB上的输入。MODER寄存器列表完全设置(0xffffffff),GPIO作为输出。
我做错了什么?
代码:
#include <libopencm3/stm32/gpio.h>
void setupGpio(void);
void setupGpio(void) {
// set input
gpio_mode_setup(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_PULLDOWN, GPIO_ALL);
}
int main(void){
setupGpio();
while (1)
{
// Loop with pin read
}
}发布于 2021-09-01 20:09:50
您需要先启用外设时钟。不只是GPIO,几乎所有的外设都需要它。
如下修改您的函数:
void setupGpio(void) {
rcc_periph_clock_enable(RCC_GPIOB); // Enable GPIOB clock
gpio_mode_setup(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_PULLDOWN, GPIO_ALL);
}https://stackoverflow.com/questions/69019290
复制相似问题