stm32f030流水灯
以下是使用STM32F030单片机实现的简单流水灯程序:
#include "stm32f0xx.h"
int main(void)
{
// 使能GPIOA时钟
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
// 配置PA0-PA3为输出模式
GPIOA->MODER |= GPIO_MODER_MODER0_0 | GPIO_MODER_MODER1_0
| GPIO_MODER_MODER2_0 | GPIO_MODER_MODER3_0;
while (1)
{
// 点亮PA0
GPIOA->BSRR = GPIO_BSRR_BS_0;
// 延时一段时间
for (int i = 0; i < 100000; i++);
// 熄灭PA0,点亮PA1
GPIOA->BSRR = GPIO_BSRR_BR_0 | GPIO_BSRR_BS_1;
for (int i = 0; i < 100000; i++);
// 熄灭PA1,点亮PA2
GPIOA->BSRR = GPIO_BSRR_BR_1 | GPIO_BSRR_BS_2;
for (int i = 0; i < 100000; i++);
// 熄灭PA2,点亮PA3
GPIOA->BSRR = GPIO_BSRR_BR_2 | GPIO_BSRR_BS_3;
for (int i = 0; i < 100000; i++);
// 熄灭PA3
GPIOA->BSRR = GPIO_BSRR_BR_3;
for (int i = 0; i < 100000; i++);
}
}
该程序使用了GPIOA的PA0-PA3四个引脚来控制流水灯的效果。程序中使用了一个无限循环,每次循环依次点亮一个LED,并延时一段时间,然后熄灭该LED并点亮下一个LED,如此循环下去。延时使用了一个简单的for循环,通过调整循环次数可以控制每个LED点亮的时间
原文地址: https://www.cveoy.top/t/topic/eFxz 著作权归作者所有。请勿转载和采集!