stm32f103编写8个流水灯代码
时间: 2024-05-05 17:22:50 浏览: 70
以下是 STM32F103 的 8 个流水灯代码:
```c
#include "stm32f10x.h"
void delay(uint32_t time) {
while (time--);
}
int main() {
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
while (1) {
GPIO_SetBits(GPIOC, GPIO_Pin_0);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_0);
GPIO_SetBits(GPIOC, GPIO_Pin_1);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_1);
GPIO_SetBits(GPIOC, GPIO_Pin_2);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_2);
GPIO_SetBits(GPIOC, GPIO_Pin_3);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_3);
GPIO_SetBits(GPIOC, GPIO_Pin_4);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_4);
GPIO_SetBits(GPIOC, GPIO_Pin_5);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_5);
GPIO_SetBits(GPIOC, GPIO_Pin_6);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_6);
GPIO_SetBits(GPIOC, GPIO_Pin_7);
delay(1000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_7);
}
}
```
该代码使用了 STM32F103 的 GPIOC 引脚控制 8 个 LED 灯的状态。在 `main` 函数中,使用了 `GPIO_SetBits` 和 `GPIO_ResetBits` 函数来设置引脚的电平状态,从而控制 LED 的亮灭。在每个 LED 灯亮起后,使用 `delay` 函数来等待一段时间,再将其熄灭。循环执行以上操作,即可实现 8 个流水灯的效果。
阅读全文