STM32 02 多路流水灯

STM32 02 多路流水灯 一、前言承接上一篇单LED闪烁实验今天在原有工程基础上修改代码实现流水灯效果。目前我依旧是刚入门阶段不会复杂封装和工程分层所有代码直接写在main.c里写法直白简单用来巩固多GPIO引脚同时控制的知识点。自身基础薄弱文中有错误欢迎各位大佬指正。二、实验目标掌握同时配置多个GPIO输出引脚​学会通过循环实现灯光依次点亮、流动的流水效果​对比单灯闪烁理解批量控制引脚的思路。三、本地工程真实结构使用文件夹内 [1-2]LED流水灯 工程目录结构和上次点灯完全一致没有额外Hardware驱动文件夹Start芯片底层启动文件无需修改​LibrarySTM32标准外设库​System系统时钟、毫秒延时函数​User唯一编写主程序main.c的目录所有逻辑直接写在这里。四、硬件简单说明开发板4路LED分别接 PC13、PC14、PC15、PB0 引脚​引脚输出低电平LED点亮高电平熄灭​每一路LED都串联220Ω限流电阻防止电流过大烧毁灯珠。五、完整基础代码#includestm32f10x.h// Device header#includedelay.hintmain(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_PinGPIO_Pin_All;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStruct);while(1){GPIO_Write(GPIOA,~0x0001);//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0002);//0000 0000 0000 0010Delay_ms(500);GPIO_Write(GPIOA,~0x0004);//0000 0000 0000 0100Delay_ms(500);GPIO_Write(GPIOA,~0x0008);//0000 0000 0000 1000Delay_ms(500);}}六、粗浅学习感悟1. 控制多个端口时开启时钟可以用 | 符号一次性开启多个外设时钟不用重复写函数​2. 同一个端口多个引脚同样能用 | 拼接在一起统一初始化简化代码​3. 流水灯最基础写法就是逐个点亮、延时、熄灭逻辑很好理解​4. 现在这种逐行写法比较繁琐后续学会数组和循环后可以简化代码。