STM32F030_LED详细配置总结

STM32F030_LED详细配置总结

这几天到手一块Cortex_M0的STM32f030的单片机,在这里总结下STM32F030的相关详细外设功能配置,本文详细说明STM32f030_LED的配置,随便说明GPIO相关寄存器的配置和功能。
  • LED管脚说明:PA2 ——LED1 PA3 ——LED2
  • LED低电平点亮

1、概述

GPIO相关特征概述:
- STM32F030提供55个快速IO口,分为5组(A、B、C、D、F)
- 每 个 通 用 I/O 口 都 有 4 个 32 位 配 置 寄 存 器(GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR 和 GPIOx_PUPDR), 2 个 32 位数据寄存器 (GPIOx_IDR and GPIOx_ODR) 和 1 个32 位置位 / 复位寄存器 (GPIOx_BSRR)
- 输出状态: 带有上拉或下拉的推挽输出或开漏输出
- 可选的每个 I/O 口的速度
- 输入状态: 浮空、 上拉 / 下拉、 模拟输入
- 模拟功能
- 复用功能
LED相关特征概述:
- LED低电平点亮
- PA2 PA3 连接LED1 LED2

2、准备工作

建议准备F0的参考手册和数据手册,方便查阅相关知识,没有的请到ST官网或到我的CSDN下载。

我每次都会提供整理好的软件工程供大家下载,但是,如果你是一位学习者,建议自己亲手一步一步操作:打开工程 -> 新建文件(led.c led.h) -> 添加相关文件到工程中 -> 添加源代码。

3、寄存器说明

这里我只简单的说明几个常用的寄存器的功能配置,其他寄存器的配置还需查看STM32F030的数据手册。

GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..D,F) 

STM32F030_LED详细配置总结_第1张图片

GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x = A..D,F) 
STM32F030_LED详细配置总结_第2张图片

GPIO 口输出速度寄存器 (GPIOx_OSPEEDR) (x = A..D,F)
STM32F030_LED详细配置总结_第3张图片
GPIO 口上拉 / 下拉寄存器 (GPIOx_PUPDR) (x = A..D,F)
STM32F030_LED详细配置总结_第4张图片
GPIO 端口置位 / 复位寄存器 (GPIOx_BSRR) (x = A..D,F)
STM32F030_LED详细配置总结_第5张图片
GPIO 复用功能低位寄存器 (GPIOx_AFRL) (x = A..B)
STM32F030_LED详细配置总结_第6张图片
GPIO 复用功能高位寄存器 (GPIOx_AFRH) (x = A..B)
STM32F030_LED详细配置总结_第7张图片
端口位复位寄存器 (GPIOx_BRR) (x=A..G)
STM32F030_LED详细配置总结_第8张图片

4、LED配置

  1. LED原理图

STM32F030_LED详细配置总结_第9张图片

STM32F030_LED详细配置总结_第10张图片

  1. 代码描述
    ①LED初始化
    STM32F030_LED详细配置总结_第11张图片
    该函数在led.c文件下,
    RCC_AHBPeriphClockCmd()是GPIO时钟控制的库函数封装
    ②LED1/2的打开或者关闭的宏定义函数
    STM32F030_LED详细配置总结_第12张图片
    该函数在led.h文件下,
    ③主函数main
    STM32F030_LED详细配置总结_第13张图片
    ④实验现象
    每0.5秒LED1进行翻转,闪烁点亮

5、说明

本次文档使用的单片机型号为STM32F030R8T6,如果是其他版本的请详细参考原理图和数据手册,一般只需修改LED1/2(PA2/3)的GPIO管脚

你可能感兴趣的:(stm32f030)