写一段stm32f103c8t6的io初始化
时间: 2023-09-27 20:04:27 浏览: 38
好的,下面是初始化代码:
// 使能GPIOB的时钟
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
// 配置PA0为推挽输出,最大输出频率为50MHz
GPIOB->CRL &= ~(GPIO_CRL_MODE0 | GPIO_CRL_CNF0);
GPIOB->CRL |= GPIO_CRL_MODE0;
// 配置PA1为浮空输入
GPIOB->CRL &= ~GPIO_CRL_CNF1;
GPIOB->CRL |= GPIO_CRL_CNF1_0;
// 配置PA2为上拉输入
GPIOB->CRL &= ~GPIO_CRL_CNF2;
GPIOB->CRL |= GPIO_CRL_CNF2_1;
GPIOB->ODR |= GPIO_ODR_ODR2;
// 配置PA3为下拉输入
GPIOB->CRL &= ~GPIO_CRL_CNF3;
GPIOB->CRL |= GPIO_CRL_CNF3_1;
GPIOB->ODR &= ~GPIO_ODR_ODR3;
// 配置PA4为推挽输出,最大输出频率为50MHz
GPIOB->CRL &= ~(GPIO_CRL_MODE4 | GPIO_CRL_CNF4);
GPIOB->CRL |= GPIO_CRL_MODE4;
// 配置PA5为浮空输入
GPIOB->CRL &= ~GPIO_CRL_CNF5;
GPIOB->CRL |= GPIO_CRL_CNF5_0;
// 配置PA6为上拉输入
GPIOB->CRL &= ~GPIO_CRL_CNF6;
GPIOB->CRL |= GPIO_CRL_CNF6_1;
GPIOB->ODR |= GPIO_ODR_ODR6;
// 配置PA7为下拉输入
GPIOB->CRL &= ~GPIO_CRL_CNF7;
GPIOB->CRL |= GPIO_CRL_CNF7_1;
GPIOB->ODR &= ~GPIO_ODR_ODR7;