stm32操作io的程序
时间: 2023-05-18 12:04:21 浏览: 101
以下是一个简单的 STM32 操作 IO 的程序:
#include "stm32f4xx.h"
int main(void)
{
// 初始化 GPIOB 和 GPIOC
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
// 配置 PB0 和 PB1 为输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// 配置 PC0 和 PC1 为输入模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
// 设置 PB0 和 PB1 为高电平
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1);
while (1)
{
// 读取 PC0 和 PC1 的状态
uint8_t pc0_state = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_0);
uint8_t pc1_state = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_1);
// 如果 PC0 或 PC1 被按下,则将 PB0 或 PB1 置为低电平
if (pc0_state == Bit_RESET)
{
GPIO_ResetBits(GPIOB, GPIO_Pin_0);
}
if (pc1_state == Bit_RESET)
{
GPIO_ResetBits(GPIOB, GPIO_Pin_1);
}
}
}
阅读全文