STM32F103R6芯片完成16个LED从下往上依次点亮,从下往上依次熄灭的代码
时间: 2023-05-16 21:06:21 浏览: 118
STM32F103 的LED程序
5星 · 资源好评率100%
以下是可以实现该功能的代码:
```c
#include "stm32f10x.h"
#define LED_NUM 16
void delay(uint32_t time);
int main(void)
{
uint16_t led_mask = 0x0001;
int i;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
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_Pin_8 | GPIO_Pin_9 | 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;
GPIO_Init(GPIOC, &GPIO_InitStructure);
for (i = 0; i < LED_NUM; i++) {
GPIO_SetBits(GPIOC, led_mask);
delay(500);
led_mask <<= 1;
}
led_mask = 0x8000;
for (i = 0; i < LED_NUM; i++) {
GPIO_ResetBits(GPIOC, led_mask);
delay(500);
led_mask >>= 1;
}
while (1) {
}
}
void delay(uint32_t time)
{
uint32_t i;
for (i = 0; i < time; i++);
}
```
这段代码使用了STM32F103R6芯片的GPIO控制LED灯的亮灭,通过循环控制16个LED从下往上依次点亮,再从上往下依次熄灭。
阅读全文