STM32学习笔记(2)(基于正点原子)

学习目的:熟悉IO口配置,会使用位操作。了解两种开发方式的区别。

一、GPIO的基本原理和寄存器配置

1.STM32F103ZET6一共有7组IO口,每组IO口有16个IO。(GPIOA,GPIOB,…,GPIOG)。
STM32F103RCT6有4组IO口。(GPIOA0…A15,GPIOB0…B15,GPIOC0…C15,GPIOD0…D2)。

2.I/O端口位的基本结构。

STM32学习笔记(2)(基于正点原子)_第1张图片
3.GPIO的工作方式。
GPIO有4种输入模式(输入浮空、输入上拉、输入下拉、模拟输入)和4种输出模式(开漏输出、开漏复用功能、推挽式输出、推挽式复用功能)。
(1)输入浮空模式
STM32学习笔记(2)(基于正点原子)_第2张图片

(2)输入上拉模式
STM32学习笔记(2)(基于正点原子)_第3张图片
(3)输入下拉模式
STM32学习笔记(2)(基于正点原子)_第4张图片
(4)模拟输入
STM32学习笔记(2)(基于正点原子)_第5张图片

(5)开漏输出模式
STM32学习笔记(2)(基于正点原子)_第6张图片
(6)开漏复用输出模式
STM32学习笔记(2)(基于正点原子)_第7张图片
(7)推挽输出模式
STM32学习笔记(2)(基于正点原子)_第8张图片

(8)推挽复用输出模式
STM32学习笔记(2)(基于正点原子)_第9张图片
4.推挽输出与开漏输出
STM32学习笔记(2)(基于正点原子)_第10张图片

在这里插入图片描述

5.GPIO相关寄存器配置
STM32学习笔记(2)(基于正点原子)_第11张图片
STM32学习笔记(2)(基于正点原子)_第12张图片6.GPIOX_CRL(GPIOX_CRH)
STM32学习笔记(2)(基于正点原子)_第13张图片
7.GPIOX_IDRSTM32学习笔记(2)(基于正点原子)_第14张图片
8.GPIOX_ODRSTM32学习笔记(2)(基于正点原子)_第15张图片
STM32学习笔记(2)(基于正点原子)_第16张图片
9.GPIOX_BSRR
通过设置ODR寄存器间接设置输出
在改写电平的时候可以直接通过该寄存器改写要改的IO口的电平,不用分析其他IO口的电平情况。
STM32学习笔记(2)(基于正点原子)_第17张图片
10.GPIOX_BRR(功能与BSRR的高位相同)STM32学习笔记(2)(基于正点原子)_第18张图片
11.端口复用STM32学习笔记(2)(基于正点原子)_第19张图片12.端口重映射
STM32学习笔记(2)(基于正点原子)_第20张图片

二、跑马灯实验–库函数

1.重要函数
STM32学习笔记(2)(基于正点原子)_第21张图片
2.SetBits为高电平,ResetBits为低电平

3.初始化函数GPIO_Init
STM32学习笔记(2)(基于正点原子)_第22张图片

Mode下的八种模式代码:
在这里插入图片描述

4.读取输入电平的函数STM32学习笔记(2)(基于正点原子)_第23张图片
5.读取输出电平的函数
STM32学习笔记(2)(基于正点原子)_第24张图片
6.设置输出电平的函数STM32学习笔记(2)(基于正点原子)_第25张图片

7.使能IO口时钟函数
STM32学习笔记(2)(基于正点原子)_第26张图片

三、跑马灯实验–寄存器

1.相关寄存器

STM32学习笔记(2)(基于正点原子)_第27张图片

2.直接对寄存器进行控制从而控制LED灯的亮灭。
3.代码
STM32学习笔记(2)(基于正点原子)_第28张图片
**

四、跑马灯实验–位操作

1.通过直接对IO口的地址进行操作来改变IO口的值,达到操作IO的目的。
STM32学习笔记(2)(基于正点原子)_第29张图片

STM32学习笔记(2)(基于正点原子)_第30张图片

2.映射关系
STM32学习笔记(2)(基于正点原子)_第31张图片

你可能感兴趣的:(stm32)