STM32F103C8----3-2 LED流水灯(跟着江科大学STM32)
一,电路图(接线图)
面包板的的使用请参考:《面包板的使用_面包板的详细使用方法-CSDN博客》
二,目的/效果
三,创建Keil项目
详细参考:《STM32F103C8----2-1 Keil5搭建STM32项目模版(跟着江科大学STM32》
四,主要逻辑+代码
4.1 使用到的片上资源
本节主要用到RCC、GPIO两个资源,如下图
用到的针脚PA0-PA7
对应新板子上的针脚位置
4.2 实现方式1:单个设置
//方式1:单个设置GPIO_Write(GPIOA, ~0x0001); //0000 0000 0000 0001,PA0引脚为低电平,其他引脚均为高电平,注意数据有按位取反Delay_ms(100); //延时100msGPIO_Write(GPIOA, ~0x0002); //0000 0000 0000 0010,PA1引脚为低电平,其他引脚均为高电平Delay_ms(100); //延时100msGPIO_Write(GPIOA, ~0x0004); //0000 0000 0000 0100,PA2引脚为低电平,其他引脚均为高电平Delay_ms(100); //延时100msGPIO_Write(GPIOA, ~0x0008); //0000 0000 0000 1000,PA3引脚为低电平,其他引脚均为高电平Delay_ms(100); //延时100msGPIO_Write(GPIOA, ~0x0010); //0000 0000 0001 0000,PA4引脚为低电平,其他引脚均为高电平Delay_ms(100); //延时100msGPIO_Write(GPIOA, ~0x0020); //0000 0000 0010 0000,PA5引脚为低电平,其他引脚均为高电平Delay_ms(100); //延时100msGPIO_Write(GPIOA, ~0x0040); //0000 0000 0100 0000,PA6引脚为低电平,其他引脚均为高电平Delay_ms(100); //延时100msGPIO_Write(GPIOA, ~0x0080); //0000 0000 1000 0000,PA7引脚为低电平,其他引脚均为高电平Delay_ms(100); //延时100ms
4.3 实现方式2:循环设置(较少代码)
//方式2:循环设置(较少代码)unsigned int PIN_VAlUE=0x0001; //定义变量 保存针脚电平值for(int i=0;i<8;i++) //循环8次{GPIO_Write(GPIOA, ~PIN_VAlUE); //引脚为低电平,其他引脚均为高电平 ,注意取反Delay_ms(100); //延时100msPIN_VAlUE=PIN_VAlUE<<1; //左移一位}
五,代码编译、下载到STM32
《STM32F103C8----2-1 Keil5搭建STM32项目模版(跟着江科大学STM32》
六,项目源码
源码位置:《STM32F103C8T6: 学习STM32F103C8T6》这个是本人学习过程中代码在Gitee上的备份。
注意:本人学习中与江科大视频中的项目文件命名不太一样。主要是方便自己理解。代码部分也有细微差别,若代码有问题还请指正。学习就是模仿巨人,让自己成为巨人。能给各位带来站在肩上感觉是我的荣耀。大家一起进步。
江科大哔哩哔哩视频:STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili