#include 'stm32f10x.h'

// 定义结构体 void GPIO_Config(void);

int main(void) { // 定义变量 GPIO_Config();

// 初始化蜂鸣器、LED while (1) { // 判断按键按下则打开蜂鸣器和 LED,并加延时语句 if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0) { GPIO_SetBits(GPIOB, GPIO_Pin_0); // 打开蜂鸣器 GPIO_SetBits(GPIOB, GPIO_Pin_1); // 打开 LED for (int i = 0; i < 1000000; i++); // 延时 } // 按键松开则关闭蜂鸣器和 LED else { GPIO_ResetBits(GPIOB, GPIO_Pin_0); // 关闭蜂鸣器 GPIO_ResetBits(GPIOB, GPIO_Pin_1); // 关闭 LED } } }

void GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure;

// 使能 GPIOA 和 GPIOB 的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);

// 配置 GPIOA 的 0 号引脚为输入 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 上拉输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);

// 配置 GPIOB 的 0 号引脚和 1 号引脚为输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); }

STM32 主函数框架代码示例 - 按键控制蜂鸣器和 LED

原文地址: https://www.cveoy.top/t/topic/btqa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录