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

相关文章
|
3月前
STM32CubeMX FreeRTOS点亮LED
STM32CubeMX FreeRTOS点亮LED
54 10
|
3月前
STM32CubeMX 按键控制LED
STM32CubeMX 按键控制LED
37 0
|
3月前
STM32CubeMX 点亮LED
STM32CubeMX 点亮LED
42 0
|
3月前
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
|
3月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
101 0
|
4月前
经验大分享:STM32F4寄存器初始化系列:GPIO
经验大分享:STM32F4寄存器初始化系列:GPIO
23 0
|
4月前
|
存储 数据安全/隐私保护 芯片
【STM32】详解嵌入式中FLASH闪存的特性和代码示例
【STM32】详解嵌入式中FLASH闪存的特性和代码示例
【STM32】详解独立看门狗的本质和使用步骤&代码
【STM32】详解独立看门狗的本质和使用步骤&代码
|
4月前
|
传感器 数据格式
【STM32】DHT11温湿度模块传感器详解&代码
【STM32】DHT11温湿度模块传感器详解&代码
|
3月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
416 0