嵌入式单片机中外设的基本控制与实现
一、GPIO外设的概述
1.GPIO的概念
GPIO指的是通用的输入输出端口,可以由用户通过软件配置的方式来进行控制,GPIO引脚需要和外设连接在一起的,就可以和外设实现通信以及采集数据等功能。
2.GPIO的定义
指的是对芯片的某个引脚进行高低电平的输出,以及可以去检测某个引脚的电平状态。一般电平采用都是TTL电平信号,TTL电平信号规定:+5V等价于逻辑“1”,0V等价于逻辑“0”。
电平其实有一个电平范围:>2.4V就表示高电平,<0.4V就表示低电平。
高电平(2.4~5V) 低电平(0~0.7V)
3.引脚的说明
电源引脚 :VCC、VDD、VSS、VDDA、VSSA、VREF+等属于电源引脚
晶振引脚 :PC14、PC15、PH0、PH1就属于晶振引脚,也可以作为其他的功能使用
复位引脚 :NRST属于复位引脚
BOOT引脚 :BOOT0是专用引脚,BOOT1就属于功能引脚 (设置芯片的自举模式)
GPIO引脚 :芯片一共有144引脚,但是GPIO引脚有114个
下载引脚 :PA13、PA14、PB3、PB4等都属于下载引脚(JTAG、SWD)
4.引脚的命名规则
一般是由P开头,分为很多组,以字母A~H来命名,每个组有16个引脚,引脚的编号为0~15,所以如 PA0 ~ PA15 PB0~PB15........
5.引脚的功能
需要注意:芯片的引脚有很多的功能,一般默认的功能都是作为GPIO(输入输出),但是引脚也有其他的功能,被称为“第二功能”,只有在使用ADC通道和DAC需要把引脚设置模拟模式,其他情况下想要把引脚当做别的功能使用,需要把引脚设置复用模式。
需要注意:引脚的功能必须通过查阅芯片的数据手册,才可以进行配置 如下图所示
注意:带FT标志的IO口,引脚内部有保护二极管,可以容忍5V电压(芯片的标准电压为3.3V)
二、GPIO外设的使用
GPIO外设的使用一般在实际开发过都是使用函数库开发,提高开发效率,以GPIO外设为例,讲解一下函数库开发的流程。以点亮LED为例
l分析原理图,找到外设连接的GPIO引脚 LED0 --- PF9
一般硬件工程师在设计开发板的过程中,先设计原理图(实际上就是对硬件的抽象),一般外设都需要通过导线连接在芯片的引脚上(不简洁),都会利用网络标号实现导线的连接,网络编号其实就是一个电气连接点,一般是以字母+数字命名,如果多个连接点都是用同样的网络编号,就说明导线是连接在一起的。
l分析原理图,理解硬件的控制原理 GPIO输出高电平 灯灭
对于一些简单的外设通过原理图就可以分析,但是一些复杂的传感器还需要结合对应的数据手册。
l根据函数库的接口进行开发 参考ST公司提供的函数库帮助手册(相当于man手册)
思考:能不能根据ST公司提供的步骤把代码编写出来? 答案是可以的
ST公司也怕你不会写,所以ST公司的开发人员帮开发者编写每个外设的代码例程
通过移植
作业:
01 编写代码,实现移植ST公司的例程到自己的开发板,点亮4盏LED(要求不去网上抄)
02 通过查阅资料,利用STM32CubeMx实现点亮4盏LED,并对比标准外设库看看区别
03 通过查阅原理图,实现开发板的蜂鸣器的控制
晨讲:
01 请简述Thumb指令集与THumb-2指令集的区别 (奖励8.88元红包)
02请简述关键字volatile的作用,并且至少说出3种应用场合 (奖励一杯奶茶)