写一个stm32单片机的流水灯程序
时间: 2024-06-01 19:13:59 浏览: 32
这是一个 STM32 单片机流水灯程序的示例:
#include "stm32f10x.h"
int main(void)
{
// 初始化 LED 端口
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // 使能 GPIOC 时钟
GPIOC->CRH &= ~(GPIO_CRH_CNF8 | GPIO_CRH_CNF9 | GPIO_CRH_CNF10 | GPIO_CRH_CNF11 | GPIO_CRH_CNF12); // 清空 GPIOC8-GPIOC12 的配置
GPIOC->CRH |= (GPIO_CRH_MODE8_0 | GPIO_CRH_MODE9_0 | GPIO_CRH_MODE10_0 | GPIO_CRH_MODE11_0 | GPIO_CRH_MODE12_0); // GPIOC8-GPIOC12 设置为输出
while (1)
{
// 循环流水灯效果
GPIOC->BSRR = (1 << 8); // LED1 亮
GPIOC->BSRR = (1 << 24); // LED2 灭
GPIOC->BSRR = (1 << 9); // LED3 亮
GPIOC->BSRR = (1 << 25); // LED4 灭
GPIOC->BSRR = (1 << 10); // LED5 亮
GPIOC->BSRR = (1 << 26); // LED6 灭
GPIOC->BSRR = (1 << 11); // LED7 亮
GPIOC->BSRR = (1 << 27); // LED8 灭
GPIOC->BSRR = (1 << 12); // LED9 亮
GPIOC->BSRR = (1 << 28); // LED10 灭
for (int i = 0; i < 1000000; i++); // 延时
}
}
请注意,上面的代码仅作为参考。在实际使用中,你可能需要根据自己的硬件环境进行一些修改。
阅读全文