GBIO流水灯代码STM32F103
时间: 2023-11-03 18:05:56 浏览: 101
以下是基于STM32F103C8T6芯片的GBIO流水灯代码:
```c
#include "stm32f10x.h"
#define LED_NUM 8 // 定义LED数量
#define DELAY_TIME 500000 // 定义延时时间
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOB时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; // 配置引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 最大输出速率为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化GPIOB
while (1)
{
for (int i = 0; i < LED_NUM; i++)
{
GPIO_WriteBit(GPIOB, GPIO_Pin_0 << i, Bit_SET); // 点亮LED
for (int j = 0; j < DELAY_TIME; j++); // 延时
GPIO_WriteBit(GPIOB, GPIO_Pin_0 << i, Bit_RESET); // 关闭LED
}
}
}
```
程序中使用了GPIOB的8个引脚控制8个LED,循环点亮1个LED并延时,然后关闭该LED,接着点亮下一个LED,循环往复,实现了GBIO流水灯效果。DELAY_TIME可以根据实际需求进行调整。
阅读全文