【教学课件】第4章通用和复用IO功能.ppt

上传人:小飞机 文档编号:5658886 上传时间:2023-08-06 格式:PPT 页数:34 大小:273KB
返回 下载 相关 举报
【教学课件】第4章通用和复用IO功能.ppt_第1页
第1页 / 共34页
【教学课件】第4章通用和复用IO功能.ppt_第2页
第2页 / 共34页
【教学课件】第4章通用和复用IO功能.ppt_第3页
第3页 / 共34页
【教学课件】第4章通用和复用IO功能.ppt_第4页
第4页 / 共34页
【教学课件】第4章通用和复用IO功能.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《【教学课件】第4章通用和复用IO功能.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章通用和复用IO功能.ppt(34页珍藏版)》请在三一办公上搜索。

1、第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

2、/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 的

3、复位状态与配置,当作为输出配置时,写到输出数据寄存器上的值(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.

4、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 状态,输入配置:可配置成浮空/上拉/下拉输入

5、模式,例:将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写操作里,可以只更改一个或多个位。这是通过对“置

6、位/复位寄存器”(置位复位寄存器是:GPIOx_BSRR,复位寄存器是:GPIOx_BRR)中想要更改的位写1 来实现的。没被选择的位将不被更改。,3、外部中断/唤醒线,所有端口都有外部中断能力,为了使用外部中断线,端口必须配置成输入模式。更多的关于外部中断的信息,参考STM3210 xReference:6.2节:外部中断/事件控制器P83 节:唤醒事件管理P84,例:将GPIOC的第9引脚置成高电平GPIO_SetBits(GPIOC,GPIO_Pin_9);例:将GPIOA的第7、第8引脚置成低电平GPIO_ResetBits(GPIOA,GPIO_Pin_7|GPIO_Pin_8);,

7、例:将GPIOB的第9引脚配置成外部中断Line9/*连接 EXTI Line9 到 PB.09*/GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9);/*设置 EXTI Line9 为下降沿中断*/EXTI_InitStructure.EXTI_Line=EXTI_Line9;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_Li

8、neCmd=ENABLE;EXTI_Init(,4、复用功能(AF)使用默认复用功能前必须对端口位配置寄存器编程。对于复用输入功能,端口可以配置成输入模式(浮空、上拉或下拉)对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。,复用功能配置:输入可配置成浮空/上拉/下拉输入模式输出可配置成推挽或开漏,复用功能的模拟输入配置:输出缓冲器、施密特触发输入、弱上拉和下拉电阻被禁止,读取输入数据寄存器时值0,5 软件重新映射I/O 复用功能,为了使不同器件封装的外设I/O功能的数量达到最优

9、,可以把一些复用功能重新映射到其他一些脚上。这可以通过软件配置相应的寄存器来完成。这时,复用功能就不再映射到它们的原始引脚上了。,例:配置USART2引脚/*配置 USART2 Tx(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 配置。当在一个端口位上执行了所定(LOC

10、K)程序,在下一次复位之前,将不能再更改端口位的配置。,二、GPIO寄存器描述,端口配置低寄存器(GPIOx_CRL)(x=A.E)偏移地址:00h;复位值:4444 4444h端口配置高寄存器(GPIOx_CRH)(x=A.E)偏移地址:04h;复位值:4444 4444h端口输入数据寄存器(GPIOx_IDR)(x=A.E)偏移地址:08h;复位值:0000 0000h端口输出数据寄存器(GPIOx_ODR)(x=A.E)偏移地址:0Ch;复位值:0000 0000h端口位设置/复位寄存器(GPIOx_BSRR)(x=A.E)偏移地址:10h;复位值:0000 0000h,端口位复位寄存器

11、(GPIOx_BRR)(x=A.E)偏移地址:14h;复位值:0000 0000h端口配置锁定寄存器(GPIOx_LCKR)(x=A.E)偏移地址:18h;复位值:0000 0000h当执行正确的写序列设置了位16(LCKK)时,该寄存器用来锁定端口位的配置。位15:0 用于锁定GPIO端口的配置。在规定的写入操作期间,不能改变LCKP15:0。当对相应的端口位执行了LOCK序列后,在下次系统复位之前将不能再更改端口位的配置。,三、复用功能I/O配置(AFIO),BXCAN 复用功能重映射,(1)重映射不适用于36脚的封装(2)重映射只适用于100脚的封装,USART2 复用功能重映射,(1)

12、只适用于100脚重映像,例:将USART2的发送Tx和接收Rx进行软件重映射/*使能 USART2 引脚的软件映射*/GPIO_PinRemapConfig(GPIO_Remap_USART2,ENABLE);/*配置 USART2 Tx(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)

13、只适用于64和100脚重映像,例:对TIM3的通道1引脚进行配置,假设没有重映射,/*TIM3的通道1:辅助功能上拉输出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6 GPIO_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,ENA

14、BLE);/*TIM3的通道1:辅助功能上拉输出*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4 GPIO_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_InitStru

15、cture.GPIO_Pin=GPIO_Pin_6 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,四、AFIO寄存器描述,事件控制寄存器(AFIO_EVCR)偏移地址:00h;复位值:0000 0000h复用重映射和调试I/O 配置寄存器(AFIO_MAPR)偏移地址:04h;复位值:0000 0000h外部中断配置寄存器1(AFIO_EXTICR1)偏移地址:08h;复位值:0000 0000h外部中断配置寄存器2(AFIO_EXTICR2)偏移地址:0Ch;复位值:0000 0000h外部中断配置寄存器3(AFIO_EXTICR3)偏移地址:10h;复位值:0000 0000h外部中断配置寄存器4(AFIO_EXTICR4)偏移地址:14h;复位值:0000 0000h,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号