第三天

2020.11.04第三天学习总结

主要内容为GPIO原理和简单实验编程,在线仿真调试

 1.main.c主程序

my.端口名称.c

my.端口名称.h

编程步骤:

(1)指出引用的头文件

(2)int main (void) (不同库的自举文件和时钟函数不相同) ①调用自举函数 ②调用系统时钟函数(先编写再调用) ③调用端口的初始化函数 若没有开启中断则之后可接while(1)函数用于执行逻辑和建立关系。

 2.GPIO原理(全称general purpose intput output通用输入输出端口)

 有4种编程方式(其中3种为通用方式,F4以下的板子无法使用第四种较为复杂的位操作。)

 STM32的引脚中只有部分是做GPIO使用(执行输入输出的基本功能),部分则是电源引脚、复位引脚、启动模式引脚、晶振引脚、调试下载引脚等。

 如何识别芯片的第一管脚及管脚的排列顺序:以芯片正面外壳上的独立凹槽或特殊凹槽为基准,将其旋转置于左上角位置,则其左侧开始第一个管脚被称为第一管脚,其余管脚会按逆时针方向以此排列。

(重点记住STM32FxxxIGT6芯片有9组I/O口,其中A-H每组有16个I/O口,I组有11个。)

 3.复用原理(引脚复用为外设功能引脚使其可以实现多种不同的功能)

 I/O口的复用功能属于出厂时期的硬件设置。

 共有16个复用功能

由于4个bit位控制一个I/O口,32位芯片则只能有8个I/O口,要想实现16个复用功能则需要将I/O口分为两组,其中AFRL表示前8个,AFRH表示后8个。

4.封装形式 LQFP176

GPIO工作模式包含4种输入模式和4种输出模式(其中输出模式可根据是否带复用划分为两种)

 4种输入模式 ①GPIO_Mode_IN_FLOATING 浮空输入 ②GPIO_Mode_IPU 上拉输入 ③GPIO_Mode_IPD 下拉输入 ④GPIO_Mode_AIN 模拟输入

 4种输出模式 ⑤GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉) ⑥GPIO_Mode_AF_OD 复用开漏输出(带上拉或者下拉) ⑦GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉) ⑧GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉)

(开漏模式是让电流更强;推挽模式是让电压更强)

(上拉输入是通过电阻接电源,默认高电平;下拉输入是通过电阻接地,默认低电平。)

(1)浮空输入模式: I/O端口的电平信号直接进入输入数据存储器(有别于上拉和下拉的接电源和接地模式)。MCU直接读取I/O口电平,I/O的电平状态是不确定的,完全由外部输入决定。

(2)上拉输入模式: I/O口内部接上拉电阻,如果I/O口外部没有信号输入或者引脚悬空,则I/O口默认为高电平,若I/O口输入低电平,则引脚就位低电平,MCU读取到的就是低电平。 STM32的内部上拉是输出微弱电流的“弱上拉”,要求大电流则需要外部上拉。

(3)下拉输入模式:(与上拉对应) 前三种都是经过施密特触发器通向输入数据存储器。

 (4)模拟输入模式: GPIO引脚用于ADC(模数转换)采集电压的输入通道时,用作“模拟输入”功能,信号直接进入ADC模块(不经过施密特触发器,输入数据寄存器为空,CPU不能再数据输入寄存器上读到引脚状态)。 GPIO用于模拟功能时,引脚上、下拉电阻不起作用,配置相应模式也不会影响模拟信号的输入输出。 除了ADC和DAC要将I/O配置为模拟通道之外,其他外设功能一律为复用功能模式。

 (5)开漏输出模式 (6)推挽输出模式 (7)复用开漏输出 (8)复用推挽输出

 6.上电复位后GPIO默认为输入浮空状态,部分特例为特定状态。

 7.GPIO端口的寄存器包括10种 每组I/O口由10个寄存器组成 分别定义全部寄存器过于麻烦,因此需要定义结构体。

 BSRR寄存器(特殊)

 端口模式寄存器(GPIOx_MODER)

实践(GPIO四种编程方式其一) 选用st库程序 ①准备工作 ②编写头文件 my.GPIO.h 头三局固定代码用来查看工程文件是否存在同名文件,如果有重名则重新定义。

 宏定义内容: 初始化中最重要点:时钟始能

顺序:①定义哪个引脚;②定义哪组I/O;③定义哪种时钟总线。 ③编写源文件 my.GPIO.c



知识盲区: 与或非门;MOS管(P-MOS,N-MOS); 阈值;三极管原理及作用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。