STM32F103VET6流水灯
时间: 2023-09-15 14:24:31 浏览: 106
STM32F103VET6
好的,下面是STM32F103VET6流水灯的代码示例:
```c
#include "stm32f10x.h"
void delay(uint32_t nCount);
int main(void)
{
// 使能GPIOC时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
// 配置PC0-PC7为输出模式
GPIO_InitTypeDef GPIO_InitStructure;
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)
{
// 点亮第一个LED
GPIO_SetBits(GPIOC, GPIO_Pin_0);
delay(1000000);
// 熄灭第一个LED,点亮第二个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_0);
GPIO_SetBits(GPIOC, GPIO_Pin_1);
delay(1000000);
// 熄灭第二个LED,点亮第三个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_1);
GPIO_SetBits(GPIOC, GPIO_Pin_2);
delay(1000000);
// 熄灭第三个LED,点亮第四个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_2);
GPIO_SetBits(GPIOC, GPIO_Pin_3);
delay(1000000);
// 熄灭第四个LED,点亮第五个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_3);
GPIO_SetBits(GPIOC, GPIO_Pin_4);
delay(1000000);
// 熄灭第五个LED,点亮第六个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_4);
GPIO_SetBits(GPIOC, GPIO_Pin_5);
delay(1000000);
// 熄灭第六个LED,点亮第七个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_5);
GPIO_SetBits(GPIOC, GPIO_Pin_6);
delay(1000000);
// 熄灭第七个LED,点亮第八个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_6);
GPIO_SetBits(GPIOC, GPIO_Pin_7);
delay(1000000);
// 熄灭第八个LED
GPIO_ResetBits(GPIOC, GPIO_Pin_7);
}
}
// 延时函数
void delay(uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
```
这段代码使用了STM32F103VET6的GPIO控制8个LED灯依次点亮,形成流水灯效果。可以根据需要修改GPIO控制的引脚和延时的时间。
阅读全文