学习目的:熟悉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端口位的基本结构。
3.GPIO的工作方式。
GPIO有4种输入模式(输入浮空、输入上拉、输入下拉、模拟输入)和4种输出模式(开漏输出、开漏复用功能、推挽式输出、推挽式复用功能)。
(1)输入浮空模式
(2)输入上拉模式
(3)输入下拉模式
(4)模拟输入
(5)开漏输出模式
(6)开漏复用输出模式
(7)推挽输出模式
(8)推挽复用输出模式
4.推挽输出与开漏输出
5.GPIO相关寄存器配置
6.GPIOX_CRL(GPIOX_CRH)
7.GPIOX_IDR
8.GPIOX_ODR
9.GPIOX_BSRR
通过设置ODR寄存器间接设置输出
在改写电平的时候可以直接通过该寄存器改写要改的IO口的电平,不用分析其他IO口的电平情况。
10.GPIOX_BRR(功能与BSRR的高位相同)
11.端口复用12.端口重映射
二、跑马灯实验–库函数
1.重要函数
2.SetBits为高电平,ResetBits为低电平
3.初始化函数GPIO_Init
Mode下的八种模式代码:
4.读取输入电平的函数
5.读取输出电平的函数
6.设置输出电平的函数
7.使能IO口时钟函数
三、跑马灯实验–寄存器
1.相关寄存器
2.直接对寄存器进行控制从而控制LED灯的亮灭。
3.代码
**
四、跑马灯实验–位操作
1.通过直接对IO口的地址进行操作来改变IO口的值,达到操作IO的目的。
2.映射关系