stm32跑马灯led.c和led.h代码
时间: 2024-02-27 21:54:41 浏览: 65
以下是一个简单的 `led.c` 和 `led.h` 代码,用于在 STM32 上实现跑马灯 LED:
led.h:
```c
#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
#define LED_GPIO_PORT GPIOC
#define LED_GPIO_PIN GPIO_Pin_13
void LED_Init(void);
void LED_On(void);
void LED_Off(void);
void LED_Toggle(void);
#endif /* __LED_H */
```
led.c:
```c
#include "led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED_GPIO_PORT, &GPIO_InitStructure);
}
void LED_On(void)
{
GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN);
}
void LED_Off(void)
{
GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN);
}
void LED_Toggle(void)
{
GPIO_WriteBit(LED_GPIO_PORT, LED_GPIO_PIN, (BitAction)(1 - GPIO_ReadOutputDataBit(LED_GPIO_PORT, LED_GPIO_PIN)));
}
```
这个代码很简单,`led.h` 中定义了一些宏和函数声明,`led.c` 中实现了这些函数的具体操作。在 `LED_Init()` 函数中,我们使用 `GPIO_Init()` 函数来初始化 LED 对应的 GPIO 引脚。在 `LED_On()` 和 `LED_Off()` 函数中,我们分别使用 `GPIO_SetBits()` 和 `GPIO_ResetBits()` 函数来控制 LED 的亮灭状态。在 `LED_Toggle()` 函数中,我们使用 `GPIO_WriteBit()` 函数来切换 LED 的状态。需要注意的是,这个代码同样是针对 STM32F103C8T6 开发板的,如果你使用的是其他的 STM32 开发板,可能需要修改一些参数才能正常运行。
阅读全文