stm32f103rct6开发板按键控制led的h文件
时间: 2024-02-26 12:58:21 浏览: 112
以下是一个简单的按键控制 LED 的示例代码,供参考:
```c
#ifndef __BUTTON_LED_H
#define __BUTTON_LED_H
#include "stm32f10x.h"
#define LED_PIN GPIO_Pin_8
#define LED_PORT GPIOA
#define BUTTON_PIN GPIO_Pin_0
#define BUTTON_PORT GPIOC
void LED_Init(void);
void BUTTON_Init(void);
#endif /* __BUTTON_LED_H */
```
```c
#include "button_led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(LED_PORT, &GPIO_InitStructure);
}
void BUTTON_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = BUTTON_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(BUTTON_PORT, &GPIO_InitStructure);
}
int BUTTON_GetState(void)
{
return GPIO_ReadInputDataBit(BUTTON_PORT, BUTTON_PIN);
}
void LED_SetState(int state)
{
if (state) {
GPIO_SetBits(LED_PORT, LED_PIN);
} else {
GPIO_ResetBits(LED_PORT, LED_PIN);
}
}
```
这个示例代码中定义了一个 LED 和一个按键,并提供了初始化和设置 LED 状态的函数。在 `LED_Init` 和 `BUTTON_Init` 函数中,使用了 STM32 的库函数来初始化 GPIO。在 `BUTTON_GetState` 函数中,使用了库函数来读取按键状态。在 `LED_SetState` 函数中,根据传入的状态来设置 LED 的亮灭状态。
阅读全文