版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章
通用输入输出口(GPIO)1通用输入输出口(GPIO)2GPIO工作原理3GPIO口配置与应用4GPIO应用实例通用输入输出口(GPIO)1第3章
通用输入输出口(GPIO)1通用输入输出口(GPIO)2GPIO工作原理3GPIO口配置与应用4GPIO应用实例通用输入输出口(GPIO)2STM32GPIO口概述STM32最常用的外设模块就是GPIO口。GPIO全称为GeneralPurposeInputOutput,即通用输入/输出,GPIO口具有8种输入和输出模式,本质就是其他单片机的输入/输出口,只不过它的灵活性更强、适用范围更广。STM32芯片的GPIO引脚与外部设备连接,可实现与外部通信、控制外部硬件或者采集外部硬件数据的功能。在输入模式下,GPIO口接收外部设备产生的电信号,并将其转换为数字信号传送给处理器。在输出模式下,GPIO口将处理器输出的数字信号转换为电信号向外部设备发送。重点——掌握四种输入模式的特点、各自应用的场合难点——相关函数的使用、四种模式的灵活应用通用输入输出口(GPIO)3STM32F103ZET6芯片的GPIO引脚STM32F103ZET6芯片为144引脚芯片,它基于Cortex-M3内核。STM32F103ZET6包含7个GPIO口组,分别为:GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF和GPIOG每组包含16个GPIO口,分别为
PA0~PA15、PB0~PB15、PC0~PC15、PD0~PD15、PE0~PE15、PF0~PF15、PG0~PG15。通用输入输出口(GPIO)4GPIO引脚的复用STM32有多个非GPIO内置外设,GPIO引脚也可作为这些外设的外部引脚使用。也就是说,一个引脚可以有多种功能。但是,STM32默认GPIO口为I/O口,如果想使用一个内置外设的功能引脚,就需要借助GPIO引脚的复用,换言之,某个GPIO引脚作为非GPIO内置外设的外部引脚使用,即为复用,比如,PB10、PB11可与串口USART3的TX、RX引脚进行复用,在实现USART3串口通信功能时,就是将上述两个GPIO引脚复用为串口输出和输入引脚。通用输入输出口(GPIO)5GPIO内部结构图通用输入输出口(GPIO)6第3章
通用输入输出口(GPIO)1通用输入输出口(GPIO)2GPIO工作原理3GPIO口配置与应用4GPIO应用实例通用输入输出口(GPIO)7GPIO的输入模式——四种(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入重点——掌握四种输入模式的特点、各自应用的场合难点——相关函数的使用、四种模式的灵活应用通用输入输出口(GPIO)8GPIO的输入模式——四种(1)GPIO_Mode_IN_FLOATING 浮空输入
(2)GPIO_Mode_AIN 模拟输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入信号进入芯片内部后,既没有接上拉电阻也没有接下拉电阻,经由触发器输入。
配置成这个模式后,用电压变量引脚电压为1点几伏,这是不确定值。例如:使用GPIO模拟IIC总线SDA(数据总线)——输出时设置成推挽
——输入时,如果没有外接上拉电阻时,则配置成上拉输入,如果有上拉电阻,则配置成浮空输入。又如:USARTx串口通信——TX,设置成复用推挽
——RX,设置成浮空输入举例特点应用由于其输入阻抗比较大,一般把这种模式用于标准的通讯协议,比如IIC、USART的等。通用输入输出口(GPIO)9GPIO的输入模式——四种(1)GPIO_Mode_IN_FLOATING 浮空输入
(2)GPIO_Mode_AIN 模拟输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入信号进入后不经过上拉电阻或下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。比如传送给ADC模块。模拟输入的信号是未经处理的信号例如:ADC外设对应的输入引脚——16路对应16个引脚,均应配置成模拟输入。又如:低功耗使用stop模式下——所有IO口最好配置成模拟输入,以降低功耗举例特点应用应用ADC模拟输入或者低功耗下省电通用输入输出口(GPIO)10GPIO的输入模式——四种(1)GPIO_Mode_IN_FLOATING 浮空输入
(2)GPIO_Mode_AIN 模拟输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入信号进入后经过内部上拉电阻或下拉电阻(30~50KΩ),经施密特触发器输入。默认情况下:上拉模式:读入的值为1下拉模式:读入的值为0例如:按键输入——使用上拉,按键按下,则切换为低电平选用上拉或下拉,取决于外部电路可以省去上拉或下拉电阻举例特点应用确保在没有输入信号时,有明确的电平要求的场合通用输入输出口(GPIO)11GPIO的输入模式——使用要领(1)GPIO输入的初始化设置
(2)引脚状态的读入不同的应用,需要设置不同的输入模式要领通用输入输出口(GPIO)12GPIO的输入模式——单功能按键利用一个按键控制发光一个二极管的发光。每按一次按键,发光二极管的状态就发生切换。——GPIO对应引脚的初始化——按键的捕捉与识别按键去抖动两法硬件去抖动软件去抖动——按键的处理要领通用输入输出口(GPIO)13GPIO的输入模式——一键多用在单片机应用系统中,为了节省硬件资源和产品成本,常采用一键多用的形式,即按键复用。一个按键有多个功能。——场景切换式根据场景的不同,自动切换其功能定义——时间切换式根据其按下的持续时间的长短,决定其不同的功能——按键组合式由两个按键或多个按键组合,实现少量按键的多功能化一个按键——短按:控制LED亮灭长安:使系统复位重启举例要领检测到S1被按下后,开始计时:——如果是3秒以内释放的,则切换D2的状态——如果3秒以上的,则执行系统重启系统重启可通过STM32单片机的软复位特性加以实现原理什么是软复位?通用输入输出口(GPIO)14GPIO的输入模式——一键多用在单片机应用系统中,为了节省硬件资源和产品成本,常采用一键多用的形式,即按键复用。一个按键有多个功能。系统软复位在系统的可靠性设计中十分有用。例如,当检测到外设模块死机,就可以通过软复位系统实现重启,使得外设重新被初始化而恢复正常工作。软复位在官方固件库的core_cm3.h文件里直接提供了系统复位的函数:static
__INLINE
void
NVIC_SystemReset(void)在发出复位请求前,要先把FAULTMASK
置位。static
__INLINE
void
__set_FAULTMASK(uint32_t
faultMask)
该函数的作用就是关闭中断,如果参数为1的话。软复位实现不得不说,软复位很有用!通用输入输出口(GPIO)15GPIO的输入模式——一键多用示例程序(只包括识别按键部分)按键识别u8KeyPressed(u16time){u16cnt=0;if(S1_DOWN)//按键按下否{delay_nms(10);//延时去抖动if(S1_DOWN){while(S1_DOWN)//等待按键释放
{delay_nms(10);cnt++;//计时}}}if(cnt==0)return0;elseif(cnt<time/10)return1;elsereturn2;}——参数time为判断时间设置,例如:3000为3秒——返回值0表示没有按键,1表示短按,2表示长按通用输入输出口(GPIO)16STM32的GPIO输出模式STM32的最常用的外设模块是GPIO,它通常用于信号的输入输出。STM32的GPIO具有四种输入、四种输出模式。(1)GPIO_Mode_AIN
模拟输入
(2)GPIO_Mode_IN_FLOATING
浮空输入
(3)GPIO_Mode_IPD
下拉输入
(4)GPIO_Mode_IPU
上拉输入
(5)GPIO_Mode_Out_OD
开漏输出
(6)GPIO_Mode_Out_PP
推挽输出
(7)GPIO_Mode_AF_OD
复用开漏输出
(8)GPIO_Mode_AF_PP
复用推挽输出4种输出模式这2种输出模式同在用在II2总线、串行通信等17STM32的GPIO输出模式STM32的GPIO用于一般的输入输出——第一步:对GPIO进行初始化设置第二步:对GPIO进行写入、读取操作对GPIO进行初始化设置:设置什么、如何设置对GPIO进行写入操作:写入1、0(高、低电平),如何写入18STM32的GPIO输出模式STM32的GPIO初始化设置——结合例子voidLED_GPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能C口时钟
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9;//选择对应的引脚
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;//速度为10MGPIO_Init(GPIOC,&GPIO_InitStructure);//初始化PC端口
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_12; //引脚
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD;//输出开漏方式
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;//速度为10MGPIO_Init(GPIOC,&GPIO_InitStructure);//初始化C端口
}速度是啥意思?19STM32的GPIO输出模式STM32的GPIO的速度设置——GPIO的引脚速度——I/O口驱动电路的响应速度,而不是输出信号的速度。输出信号的速度只取决于程序。当STM32的GPIO端口设置为输出模式时,有三种速度可以选择——2MHz、10MHz和50MHz。这个速度是指I/O口驱动电路的速度,是用来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。
高频的驱动电路,噪声也高。当你不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。
如果你要输出较高频率的信号,但却选用了较低频率的驱动模块,你很可能会得到失真关键是,GPIO的引脚速度如何与应用匹配?
举例:对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。原来是这个意思啊,城里套路深!20STM32的GPIO输出模式STM32的GPIO写入(输出)操作——库函数法、寄存器法GPIO_WriteBit(GPIOx,GPIO_Pin_y,BIT_SET/BIT_RESET)置位或者复位单个输出端口的数据GPIO_Write(GPIOx,0x1111)置位或者复位整个输出端口的数据。其中x:A-Gy:0-15GPIO_SetBits(GPIOA,GPIO_Pin_0
|
GPIO_Pin_1)设置PA0--PA1高电平
GPIO_ResetBits(GPIOA,GPIO_Pin_0
|
GPIO_Pin_1)设置PA0--PA1低电平GPIOB->ODR=0XFFFF;
//设置PB0高电平
GPIOB->ODR=0XFFFE;
//设置PB0低电平例如:GPIO_WriteBit(GPIOA,GPIO_Pin_3,1)设置PA3高电平GPIO_WriteBit(GPIOA,GPIO_Pin_3,0)设置PA3低电平库函数法。注意用法寄存器法21STM32的GPIO输出模式STM32的GPIO写入(输出)操作——考考你!假设一个LED接在GPIOB的8脚上,高电平关闭。如果要让它以500ms/500ms的周期闪烁显示,请写出程序?22第3章
通用输入输出口(GPIO)1通用输入输出口(GPIO)2GPIO工作原理3GPIO口配置与应用4GPIO应用实例通用输入输出口(GPIO)23GPIO口配置(1)选择所用引脚
(2)配置引脚参数通用输入输出口(GPIO)24GPIO口配置(1)选择所用引脚
(2)配置引脚参数通用输入输出口(GPIO)25GPIO函数(1)初始化函数
(2)复位函数(3)读指定引脚的值(4)写指定引脚的值(5)GPIO引脚电平求反(6)GPIO引脚电平锁定通用输入输出口(GPIO)26第3章
通用输入输出口(GPIO)1通用输入输出口(GPIO)2GPIO工作原理3GPIO口配置与应用4GPIO应用实例通用输入输出口(GPIO)27GPIO输出控制—控制LED闪烁显示(1)MCU型号选择
(2)功能参数设置
配置RCC
配置时钟树
配置Debug
配置相应引脚PB5
生成工程通用输入输出口(GPIO)28图3.14LED电路设计图图3.15LED0引脚连接图(3)生成功能代码(4)编写应用程序(5)查验实验结果单功能按键输入—按键控制LED发光通用输入输出口(GPIO)29图3.26电路设计图KEY0控制发光二极管LED0发光。每按一次KEY0,LED0状态就转换一次。(1)MCU型号选择
(2)功能参数设置
配置RCC
配置时钟树
配置Debug
配置相应引脚PB5(输出)、PE4(输入)
生成工程(3)生成功能代码(4)编写应用程序(5)查验实验结果复用功能按键输入—一键多用通用输入输出口(GPIO)30图3.31电路设计图KEY1控制发光二极管LED0发光。短按KEY0,LED0状态就转换一次。长按KEY0(超过3s),系统复位。(1)MCU型号选择
(2)功能参数设置
配置RCC
配置时钟树
配置Debug
配置相应引脚PB5(输出)、PE3(输入)
生成工程(3)生成功能代码(4)编写应用程序(5)查验实验结果学会学习是大学最重要的使命方向你努力更重要谢谢你用心消化本章内容通用输入输出口(GPIO)31第4章中断系统原理与应用目录Contents中断及其基本原理01中断系统组成EXIT应用实例04中断处理流程EXIT控制LED翻转嵌套向量中断控制器02EXIT嵌套LED控制EXTI配置与应用03嵌套向量中断控制器的功能异常和中断EXITEXIT配置EXIT函数中断及其原理PowerpointDesignPART01中断的应用场景中断广泛应用于嵌入式系统中,如实时数据处理、设备控制和故障检测等场景。在这些场景中,中断机制使得处理器能够快速响应外部设备的状态变化或内部定时器的溢出事件。通过合理配置中断,系统可以高效地管理多个任务,确保关键任务得到及时处理,从而提升系统的整体性能和用户体验。中断的概念解析中断是处理器在运行过程中应对紧急事件的机制,允许CPU暂停当前任务,转而处理更高优先级的事件。这种机制显著提升了系统的实时性和效率,使得处理器能够灵活应对多种突发情况。通过中断,系统可以在不中断主程序执行的情况下,及时响应外部或内部的紧急请求,从而提高整体操作的可靠性和效率。中断的定义与作用中断系统组成PowerpointDesignPART02PART02PART01嵌套向量中断控制器(NVIC)NVIC是STM32单片机中管理中断的核心组件,它负责处理来自外部和内部的中断请求。NVIC支持多级中断优先级配置,允许用户根据需求调整中断的响应顺序。通过NVIC,处理器可以高效地管理多个中断源,确保高优先级中断能够及时得到处理,从而提升系统的实时性和可靠性。中断请求与中断使能中断请求是中断事件的触发信号,由外部设备或内部定时器产生。中断使能则用于控制中断的启用或禁用状态。通过设置中断使能位,用户可以灵活地控制中断的响应,确保系统在需要时能够及时处理中断请求,而在不需要时能够屏蔽不必要的中断,从而提高系统的运行效率。中断系统的组成中断标志中断标志(InterruptFlag)用于指示特定的中断是否发生,发生时该标志位被置位。在处理器处理完中断后,需要及时清除相应的中断标志,避免同一个中断被再次触发。中断源能引起中断的事件称为中断源。中断源一般都与外设相关。每一个中断源都有与它相对应的中断标志位,一旦该中断发生,则其中断标志位被置位,如果中断标志位被清除,则其对应的中断便不会被处理器响应。PART02PART01中断向量表中断向量表(InterruptVectorTable)是STM32单片机中的一个特殊的内存区域,存储着不同中断所对应的中断处理程序的地址。当中断发生时,处理器会通过中断向量表找到相应中断源的中断服务程序的入口地址,并跳转至该地址去执行。中断优先级STM32单片机的中断优先级控制机制允许用户为不同的中断源分配不同的优先级,它分为响应优先级和抢占优先级两类。当多个中断请求同时发生时,处理器先处理优先级较高的中断。在NVIC中,每个中断通道可通过配置寄存器来设置中断源的优先级。中断系统的组成中断服务程序在STM32单片机中,每个中断源通常对应一个中断服务程序(InterruptServiceRoutine,ISR),也称为中断服务函数。用户可自定义中断服务程序,以对相应中断请求做出对应的处理。中断挂起中断挂起(InterruptPending)是NVIC的一项功能,用于标识正在等待处理的中断请求,即当中断请求发生时,如果该中断已被挂起,它将等待处理器的处理。该功能使得处理器可按照优先级顺序处理挂起的中断。中断处理流程PowerpointDesignPART03中断响应是中断处理的第一阶段,当中断请求发生时,处理器会首先识别中断源,并根据中断使能位的设置判断是否响应该中断。如果中断被使能,处理器将保存当前执行状态,并跳转到中断服务程序。这一阶段由硬件自动完成,确保中断能够被及时响应,从而保证系统的实时性。中断响应阶段中断执行阶段是中断处理的核心部分,处理器在这一阶段执行中断服务程序。用户可以根据需求自定义中断服务程序,以处理特定的中断请求。中断服务程序需要高效地完成中断任务,并及时清除中断标志,以避免中断被重复触发。这一阶段的执行效率直接影响系统的整体性能。中断执行阶段中断处理流程——三个阶段当处理器执行中断服务程序后,首先恢复中断现场(包括现场信息的出栈),然后执行中断返回,以便回到断点处继续执行主程序。中断返回阶段中断处理流程——三个阶段NVIC功能详解PowerpointDesignPART04NVIC提供了中断使能和禁止功能,允许用户动态控制中断的响应状态。通过设置中断使能位,用户可以启用或禁用特定的中断。这一功能在需要临时屏蔽某些中断时非常有效,确保系统能够专注于处理当前最重要的任务,从而提高系统的运行效率和稳定性。NVIC支持多级中断优先级配置,允许用户为不同的中断源分配不同的优先级。通过配置抢占优先级和响应优先级,用户可以确保高优先级中断能够及时得到处理。NVIC的优先级管理机制使得处理器能够高效地处理多个并发中断,从而提升系统的实时性和可靠性。0102中断优先级管理中断使能与禁止NVIC的主要功能NVIC支持中断的嵌套。当CPU正在处理一个中断时,如果具有更高优先级的事件提出中断请求,则CPU停止当前中断的处理,转而处理更高优先级的中断。嵌套中断机制可使得NVIC更有效地管理多个并发的中断事件。STM32F1系列支持16层嵌套。中断嵌套示意图如图4.3所示。03中断嵌套NVIC的主要功能EXTI配置与应用PowerpointDesignPART05EXTI的中断服务程序是处理外部中断请求的核心部分。用户需要在中断服务程序中清除中断标志,并调用回调函数以执行具体的中断任务。通过合理设计中断服务程序,用户可以确保外部中断能够被及时处理,从而提高系统的实时性和可靠性。此外,回调函数的灵活性使得用户能够轻松扩展中断处理功能。EXTI的配置是实现外部中断功能的关键步骤。用户需要首先选择需要配置的GPIO引脚,并将其设置为外部中断输入模式。接着,配置中断触发方式(上升沿、下降沿或双边沿触发),并设置中断优先级。最后,启用外部中断,并确保中断服务程序正确实现,以处理外部中断请求。EXTI的配置步骤EXTI的中断服务程序EXTI的基本配置HAL_GPIO_EXTI_IRQHandler(uint16_tGPIO_Pin)功能描述:该函数被EXTIX_IRQHandler(void)函数调用,该函数的作用是对中断标志位清零和调用回调函数。应用范例:HAL_GPIO_EXTI_IRQHandler(KEY0_Pin);voidEXTIX_IRQHandler(void)功能描述:外部中断触发后进入该函数。应用范例:自动触发并直接调用。外部中断函数外部中断请求处理函数EXTI函数与EXTI相关的处理函数被定义在stm32f1xx_hal_it.c源文件中__weakvoidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin)功能描述:该函数被HAL_GPIO_EXTI_IRQHandler(void)函数调用,是一个弱函数。其主要功能是完成外部中断的任务,由用户自己定义。应用范例:HAL_GPIO_EXTI_IRQHandler(KEY0_Pin);回调函数EXTI函数与EXTI相关的处理函数被定义在stm32f1xx_hal_it.c源文件中中断应用实例PowerpointDesignPART06在本实验中,用户将使用两个按键作为外部中断输入源,通过外部中断控制两个LED的亮灭状态。实验电路设计需要确保按键与GPIO引脚正确连接,并配置GPIO引脚为外部中断输入模式。此外,还需要配置LED的控制引脚,以确保LED能够根据中断请求改变状态。KEY0控制LED0,KEY1控制LED1。实验电路设计中断控制LED翻转01.MCU型号选择02.功能参数设置
配置RCC,选择外部高速晶振
配置时钟树,选择系统时钟为72M
配置DebugGPIO引脚配置NVIC配置
生成工程03.生成工程代码04.编写应用程序05.查验实验结果程序实现与调试中断控制LED翻转根据开发板设计电路,使用一个按键引脚的外部中断完成延时500ms后LED0闪烁一次,KEY0控制LED0。嵌套LED控制电路设计图如图4.23所示。实验电路设计EXIT嵌套LED控制01.MCU型号选择02.功能参数设置
配置RCC,选择外部高速晶振
配置时钟树,选择系统时钟为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮外卖配送协议(2026年美食城)
- 高山茶园土壤改良方案
- 农产品产地准出准入制度
- 血压血糖检测解读规范手册
- 果蔬采摘分级采收技术标准规范
- 农产品产地准出检测操作规范
- 老年人低脂膳食搭配指引
- 失眠调理膳食配餐实施指南
- 温室大棚防渗膜铺设验收标准
- 心率变异性监测数据分析规范
- 川上未映子《乳与卵》中的女性身体叙事研究
- 《2023版CSCO小细胞肺癌诊疗指南》
- 2026年院感培训知识测试题及答案
- 四不伤害安全培训课件
- 华润药业介绍
- 2025年度全球风险投资状况回顾报告:私募市场交易、投融资和退出数据及分析 State of Venture Global 2025 recap
- 下水道科普教学课件
- 广西玉林师范学院招聘考试真题2025
- 车辆调度合作合同范本
- 涉密测绘成果安全管理细则
- 2025年高职(生物制药技术)药物发酵工艺综合测试卷及答案
评论
0/150
提交评论