STM32:GPIO控制LED流水灯(主函数代码部分+代码解释)

简介: STM32:GPIO控制LED流水灯(主函数代码部分+代码解释)

主函数代码部分:


#include "stm32f10x.h" // Device header
#include "delay.h"
int main(void)
{
//GPIO三步骤:(RCC+GPIO两个外设)---右键跳转定义.h文件,然后拉到最后
//1.RCC开启GPIO时钟
//2.GPIO_Init初始化GPIO,
//3.使用输出,输入控制GPIO口
//1.RCC初始化函数
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//2.GPIO_Init初始化GPIO
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_All;//流水灯需要0~7号端口
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
while(1)
{
//GPIO控制流水灯
//GPIO需要同时控制16个引脚----只用低八位,高八位不需要
GPIO_Write(GPIOA,~0x0001);
//不支持2进制,此处是16进制。0000 0000 0000 0001,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
GPIO_Write(GPIOA,~0x0002);
//不支持2进制,此处是16进制。0000 0000 0000 0002,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
GPIO_Write(GPIOA,~0x0004);
//不支持2进制,此处是16进制。0000 0000 0000 0004,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
GPIO_Write(GPIOA,~0x0008);
//不支持2进制,此处是16进制。0000 0000 0000 0008,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
GPIO_Write(GPIOA,~0x0010);
//不支持2进制,此处是16进制。0000 0000 0000 0010,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
GPIO_Write(GPIOA,~0x0020);
//不支持2进制,此处是16进制。0000 0000 0000 0020,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
GPIO_Write(GPIOA,~0x0040);
//不支持2进制,此处是16进制。0000 0000 0000 0040,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
GPIO_Write(GPIOA,~0x0080);
//不支持2进制,此处是16进制。0000 0000 0000 0080,低电平点亮,按位取反.第一个LED点亮,其他都熄灭
Delay_ms(500);
//GPIO_Mode_Out_PP,推挽输出下,高低电平都有驱动
//GPIO_Mode_Out_OD,开漏输出模式下,高电平(相当于高阻态)没有驱动能力,低电平有
}
}

结果如下:

2d9311a6271647af8e56e9a86cd67934.png


79fb3413965547cb90f702e08e93e885.png

相关文章
|
2月前
stm32学习 3-2 LED流水灯
stm32学习 3-2 LED流水灯
75 4
|
2月前
stm32学习3-1 LED闪烁
stm32学习3-1 LED闪烁
38 4
|
5月前
STM32CubeMX FreeRTOS点亮LED
STM32CubeMX FreeRTOS点亮LED
90 10
|
5月前
STM32CubeMX 按键控制LED
STM32CubeMX 按键控制LED
78 0
|
5月前
STM32CubeMX 点亮LED
STM32CubeMX 点亮LED
69 0
|
5月前
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
|
5月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
206 0
|
6月前
经验大分享:STM32F4寄存器初始化系列:GPIO
经验大分享:STM32F4寄存器初始化系列:GPIO
34 0
|
6月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
472 2
|
5月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
783 0