物联网
您现在所在的位置:首页>企业动态>物联网

STM32点灯

编辑:学到牛牛IT培训    发布日期: 2023-09-25 08:56:55  

1.GPIO简介

GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。STM32F407ZGT6,一共有7组GPIO口。每组IO口有16个IO,16X7 = 112,外加PH0、PH1,共有114个IO口,从GPIOA到GPIOG,PH0、PH1。

每个通用 I/O 端口包括 4 个 32 位配置寄存器( GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)、 2 个 32 位数据寄存器(GPIOx_IDR 和GPIOx_ODR)、 1 个 32 位置位/复位寄存器 (GPIOx_BSRR)、 1 个 32 位锁定寄存器(GPIOx_LCKR) 和 2 个 32 位复用功能选择寄存器( GPIOx_AFRH 和 GPIOx_AFRL)。

IO口输入模式:浮空输入模式、上拉输入模式、下拉输入模式、模拟输入模式。IO口输出模式:开漏输出模式、开漏复用模式、推挽式输出模式、推挽式复用模式。四种最大速度:2MHz、25MHz、50MHz、100MHz。

2.GPIO控制LED

首先明确整体思路:

a.找到需要控制的开发板硬件(一般有丝印)

b.根据丝印在原理图中找到对应电路图,根据电路图找出关联的引脚及控制方式。

c.在芯片手册找到对应引脚(PF8)的寄存器地址。

d.编程。

2.1开发板硬件

开发板硬件如下,可见LED对应的丝印分别为LED1、LED2、LED3、LED4,其中LED4为硬件电源灯(不可编程)、其余三个灯均可编程控制。

1.png

2.2开发板原理图

在开发板对应的硬件电路图上,定位硬件开发板上丝印所对应位置的电路图接线方式。可知控制LED1、LED2、LED3的GPIO引脚分别为GPIOF_Pin8(简称GPF8)、GPIOF_Pin9、GPIOF_Pin10。并且根据电路图可知,如果需要LED亮,则GPIOF_Pin8需要设置为低电平。反之,如果需要LED灭,则GPIOF_Pin8需要设置为高电平。

2.png

2.3GPIO寄存器地址

上节我们找到控制LED亮灭的GPIO引脚,引脚控制需要对应的寄存器。stm32一般将寄存器地址分为:基地址和偏移地址。

基地址分布在“存储器映射”章节。如下图:GPIOF的寄存器地址范围为0x40021400 – 0x400217ff,其中0x40021400为基地址。该IO口挂载的总线为AHB1,编程时需要打开对应外设的时钟(寄存器AHB1ENR)。

3.png

GPIO寄存器的偏移地址在“GPIO寄存器映射”章节。如下图(部分寄存器):

4.png

2.4LED编程控制

LED控制需要用到三个寄存器,分别是RCC_AHB1ENR、GPIOF_MODER、GPIOF_ODR。

1.RCC_AHB1ENR寄存器

该寄存器控制对应总线上的外设时钟使能,如下图。该寄存地址为0x40023800 + 0x30。

5.png

图片1.png

外设GPIOF时钟使能编程如下:

#define  RCCAHB1ENR (*(volatile unsigned int *)( 0x30 + 0x40023800 ) )

RCCAHB1ENR  |= ( 1<< 5 );

2.GPIOF_MODER寄存器

该寄存器用于设置IO口的工作方式,控制LED亮灭需要使用输出模式。,如下图。该寄存地址为0x40021c00 + 0x0。

6.png

#define  GPIOFMODER (*(volatile unsigned int *)( 0x00 + 0x40021400 ) )

GPIOFMODER &= ~( 3 << 16 );

GPIOFMODER |= ( 1 << 16 );


3.GPIOF_ODR寄存器

该寄存器用于设置IO口的输出的电平值:0为低电平、1为高电平,如下图。该寄存地址为0x40021c00 + 0x14。

7.png

#define  GPIOFODR (*(volatile unsigned int *)( 0x14 + 0x40021400 ) )

GPIOFODR &= ~( 1 << 8 ); // LED亮

GPIOFODR |= ( 1 << 8 ); // LED灭


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    扫一扫,免费咨询

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    微信公众号

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

学一流技术,找高薪工作

物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问