通用和复用IO功能.ppt_第1页
通用和复用IO功能.ppt_第2页
通用和复用IO功能.ppt_第3页
通用和复用IO功能.ppt_第4页
通用和复用IO功能.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章通用和复用功能I/O(GPIO和AFIO),4.1GPIO基本配置,每个GPI/O端口有:2个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),2个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),1个32位置位/复位寄存器(GPIOx_BSRR),1个16位复位寄存器(GPIOx_BRR)1个32位锁定寄存器(GPIOx_LCKR)。,4.1GPIO基本配置,根据每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式:输入浮空输入上拉输入下拉模拟输入开漏输出推挽式输出推挽式复用功能开漏复用功能,I/O端口位的基本结构,端口位配置表,输出模式位,4.2GPIO功能描述,4.2.1通用I/O(GPIO)通用I/O的复位状态与配置单独的位设置或位清除外部中断/唤醒线GPIO锁定机制,1.通用I/O的复位状态与配置,复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式(CNFx1:0=01b,MODE1:0=00b).复位后,JTAG引脚被置于输入上拉或下拉模式:PA15:JTDI置于上拉模式PA14:JTCK置于下拉模式PA13:JTMS置于上拉模式PB4:JNTRST置于上拉模式复位后可以根据对I/O端口的使用进行再配置。,1.通用I/O的复位状态与配置,当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推挽模式或开漏模式使用输出驱动器。(1)输出缓冲器被激活(2)施密特触发输入被激活(3)弱上拉和下拉电阻被禁止(4)出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,输出配置:可配置成推挽模式或开漏模式,例:将PC6-PC9引脚设置为输出推挽模式/*选择配置的引脚*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;/*选择引脚翻转的速度*/GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/*选择输出是推挽模式*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;/*初始化引脚*/GPIO_Init(GPIOC,当作为输入配置时,输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。所有GPIO引脚有一个内部弱上拉和弱下拉,它们可以被激活或不被激活。(1)输出缓冲器被禁止(2)施密特触发输入被激活(3)根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接(4)对输入数据寄存器的读访问可得到I/O状态,输入配置:可配置成浮空/上拉/下拉输入模式,例:将GPIOA所有的引脚都设置为输入浮空模式/*选择配置的引脚*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;/*选择引脚翻转的速度*/GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;/*选择输入是浮空模式*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;/*初始化引脚*/GPIO_Init(GPIOA,2.单独的位设置或位清除,当对GPIOx_ODR的个别位编程时,软件不需要禁止中断:在单次APB2写操作里,可以只更改一个或多个位。这是通过对“置位/复位寄存器”(置位复位寄存器是:GPIOx_BSRR,复位寄存器是:GPIOx_BRR)中想要更改的位写1来实现的。没被选择的位将不被更改。,3、外部中断/唤醒线,所有端口都有外部中断能力,为了使用外部中断线,端口必须配置成输入模式。更多的关于外部中断的信息,参考STM3210 xReference:6.2节:外部中断/事件控制器P836.2.3节:唤醒事件管理P84,例:将GPIOC的第9引脚置成高电平GPIO_SetBits(GPIOC,GPIO_Pin_9);例:将GPIOA的第7、第8引脚置成低电平GPIO_ResetBits(GPIOA,GPIO_Pin_7|GPIO_Pin_8);,例:将GPIOB的第9引脚配置成外部中断Line9/*连接EXTILine9到PB.09*/GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9);/*设置EXTILine9为下降沿中断*/EXTI_InitStructure.EXTI_Line=EXTI_Line9;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(,4、复用功能(AF)使用默认复用功能前必须对端口位配置寄存器编程。对于复用输入功能,端口可以配置成输入模式(浮空、上拉或下拉)对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。,复用功能配置:输入可配置成浮空/上拉/下拉输入模式输出可配置成推挽或开漏,复用功能的模拟输入配置:输出缓冲器、施密特触发输入、弱上拉和下拉电阻被禁止,读取输入数据寄存器时值0,5软件重新映射I/O复用功能,为了使不同器件封装的外设I/O功能的数量达到最优,可以把一些复用功能重新映射到其他一些脚上。这可以通过软件配置相应的寄存器来完成。这时,复用功能就不再映射到它们的原始引脚上了。,例:配置USART2引脚/*配置USART2Tx(PA.02)成辅助功能输出上拉*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOA,6.GPIO锁定机制,锁定机制允许冻结IO配置。当在一个端口位上执行了所定(LOCK)程序,在下一次复位之前,将不能再更改端口位的配置。,二、GPIO寄存器描述,端口配置低寄存器(GPIOx_CRL)(x=A.E)偏移地址:00h;复位值:44444444h端口配置高寄存器(GPIOx_CRH)(x=A.E)偏移地址:04h;复位值:44444444h端口输入数据寄存器(GPIOx_IDR)(x=A.E)偏移地址:08h;复位值:00000000h端口输出数据寄存器(GPIOx_ODR)(x=A.E)偏移地址:0Ch;复位值:00000000h端口位设置/复位寄存器(GPIOx_BSRR)(x=A.E)偏移地址:10h;复位值:00000000h,端口位复位寄存器(GPIOx_BRR)(x=A.E)偏移地址:14h;复位值:00000000h端口配置锁定寄存器(GPIOx_LCKR)(x=A.E)偏移地址:18h;复位值:00000000h当执行正确的写序列设置了位16(LCKK)时,该寄存器用来锁定端口位的配置。位15:0用于锁定GPIO端口的配置。在规定的写入操作期间,不能改变LCKP15:0。当对相应的端口位执行了LOCK序列后,在下次系统复位之前将不能再更改端口位的配置。,三、复用功能I/O配置(AFIO),BXCAN复用功能重映射,(1)重映射不适用于36脚的封装(2)重映射只适用于100脚的封装,USART2复用功能重映射,(1)只适用于100脚重映像,例:将USART2的发送Tx和接收Rx进行软件重映射/*使能USART2引脚的软件映射*/GPIO_PinRemapConfig(GPIO_Remap_USART2,ENABLE);/*配置USART2Tx(PD.05)成辅助功能输出上拉*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOD,TIM3复用功能重映射,(1)只适用于64和100脚重映像,例:对TIM3的通道1引脚进行配置,假设没有重映射,/*TIM3的通道1:辅助功能上拉输出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,例:对TIM3的通道1引脚进行配置,假设部分重映射/*使能TIM3引脚的部分重映射*/GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);/*TIM3的通道1:辅助功能上拉输出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,例:对TIM3的通道1引脚进行配置,假设完全重映射/*使能TIM3引脚的完全重映射*/GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);/*TIM3的通道1:辅助功能上拉输出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,四、AFIO寄存器描述,事件控制寄存器(AFIO_EVCR)偏移地址:00h;复位值:00000000h复用重映射和调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论