stm32 led灯接地并连接stm32f103r6芯片的PA8引脚,按键一和按键二接地,按下按键一熄灭灯,按下按键二点亮灯,请给出代码
时间: 2023-06-01 13:06:52 浏览: 794
好的,以下是代码:
```
#include "stm32f10x.h"
#define LED_PIN GPIO_Pin_8 // 灯接在PA8引脚上
#define KEY1_PIN GPIO_Pin_0 // 按键1接在PA0引脚上
#define KEY2_PIN GPIO_Pin_1 // 按键2接在PA1引脚上
#define KEY1_PRESS GPIO_ReadInputDataBit(GPIOA, KEY1_PIN)==RESET // 判断按键1是否按下
#define KEY2_PRESS GPIO_ReadInputDataBit(GPIOA, KEY2_PIN)==RESET // 判断按键2是否按下
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能GPIOA时钟
GPIO_InitStructure.GPIO_Pin = LED_PIN; // LED引脚配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = KEY1_PIN | KEY2_PIN; // 按键引脚配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 上拉输入模式
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
int main(void)
{
GPIO_Configuration();
while(1)
{
if(KEY1_PRESS) // 按下按键1,熄灭LED灯
{
GPIO_ResetBits(GPIOA, LED_PIN);
}
else if(KEY2_PRESS) // 按下按键2,点亮LED灯
{
GPIO_SetBits(GPIOA, LED_PIN);
}
}
}
```
以上代码使用了GPIO控制LED灯和读取按键状态,实现了按下按键一熄灭灯、按下按键二点亮灯的功能。
阅读全文