GPIOx_MODER :配置IO端口方向为输入/输出/AF/模拟GPIOx_OTYPER :选择输出类型:推挽/开漏GPIOx_OSPEEDR :选择IO速度(与IO端口方向无关)GPIOx_PUPDR :选择上拉/下拉电阻(与IO端口方向无关)
该寄存器允许置位/复位GPIOx_ODR上指定的一位,GPIOx_ODR上每位关联到两个控制位:GPIOx_BSRR:BSRR(i) [Bits 15:0]和 GPIOx_BSRR:BSRR(i+SIZE)[Bits31:16];往GPIOx_BSRR:BSRR(i) [Bits 15:0]写1 可以置位对应的ODR;往GPIOx_BSRR:BSRR(i) [Bits 31:16]写1 可以置位对应的ODR;往该寄存器写0不会产生任何影响
必需通过通过一个特殊的读写时序才能写入该寄存器,但时序正确时,bit16会置位(lock key active),bits[15:0]显示哪些IO端口被锁定了,端口被锁定之后直到下一个复位才能解锁,锁定之后以下寄存器将被冻结:GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR、GPIOx_AFRH、GPIOx_AFRL
下图为GPIO的架构图:
3. GPIO一般用途
IO端口通过一个内部的多路选择器以允许在同一时刻只使用一种复用功能,这样使得多个外围电路共享同样的IO端口每个IO端口可以通过配置GPIOx_AFRL和GPIOx_AFRH设置所使能的复用功能(AF0~AF15)
- 复位之后,所有的IO连接到复用功能0(AF0)
- 外围电路的复用功能映射到AF1~AF14
- Cortex-M3 EVENTOUT映射到AF15
以下说明如何使用复用功能:
- System Function:配置IO端口使能的复用功能(JTAG/SWD,在复位之后对应端口会被调试器设置为调试功能下且不受GPIO寄存器的控制;RTC_50HZ,对应端口需要设置为输入+悬空;MCO,该端口必需配置在复用模式下)
- GPIO:根据需要配置GPIOx_MODER设置IO端口工作模式(输入、输入/模拟)
- Perpheral‘s Alternate Function:对于ADC/DAC,配置IO为模拟;对于其他外围功能,配置GPIOx_MODER、GPIOx_OTYPE、GPIOx_PUPDR、GPIOx_OSPEEDER
- EVENTOUT:配置IO端口复用功能AF15,用于输出Cortex-M3 EVENTOUT信号
6. 输入模式配置所有的IO端口均有外部中断功能,使用外部中断功能时,IO端口必需设置为输入模式
当IO端口配置为输入模式时:
当IO端口配置为输出模式时:
-- 开漏模式时:输出0时,N-MOS导通(P-MOS任何情况下不会导通)-- 推挽模式时:输出0时,N-MOS导通;输出1时,P-MOS导通
当IO端口配置为复用功能时:
当IO端口配置为模拟模式时:
STM32L152XX拥有以下特性
RTC_AF1端口(PC13)可配置为以下功能:
GPIOx_MODER :配置IO端口方向为输入/输出/AF/模拟GPIOx_OTYPER :选择输出类型:推挽/开漏GPIOx_OSPEEDR :选择IO速度(与IO端口方向无关)GPIOx_PUPDR :选择上拉/下拉电阻(与IO端口方向无关)
该寄存器允许置位/复位GPIOx_ODR上指定的一位,GPIOx_ODR上每位关联到两个控制位:GPIOx_BSRR:BSRR(i) [Bits 15:0]和 GPIOx_BSRR:BSRR(i+SIZE)[Bits31:16];往GPIOx_BSRR:BSRR(i) [Bits 15:0]写1 可以置位对应的ODR;往GPIOx_BSRR:BSRR(i) [Bits 31:16]写1 可以置位对应的ODR;往该寄存器写0不会产生任何影响
必需通过通过一个特殊的读写时序才能写入该寄存器,但时序正确时,bit16会置位(lock key active),bits[15:0]显示哪些IO端口被锁定了,端口被锁定之后直到下一个复位才能解锁,锁定之后以下寄存器将被冻结:GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR、GPIOx_AFRH、GPIOx_AFRL
下图为GPIO的架构图:
3. GPIO一般用途
IO端口通过一个内部的多路选择器以允许在同一时刻只使用一种复用功能,这样使得多个外围电路共享同样的IO端口每个IO端口可以通过配置GPIOx_AFRL和GPIOx_AFRH设置所使能的复用功能(AF0~AF15)
- 复位之后,所有的IO连接到复用功能0(AF0)
- 外围电路的复用功能映射到AF1~AF14
- Cortex-M3 EVENTOUT映射到AF15
以下说明如何使用复用功能:
- System Function:配置IO端口使能的复用功能(JTAG/SWD,在复位之后对应端口会被调试器设置为调试功能下且不受GPIO寄存器的控制;RTC_50HZ,对应端口需要设置为输入+悬空;MCO,该端口必需配置在复用模式下)
- GPIO:根据需要配置GPIOx_MODER设置IO端口工作模式(输入、输入/模拟)
- Perpheral‘s Alternate Function:对于ADC/DAC,配置IO为模拟;对于其他外围功能,配置GPIOx_MODER、GPIOx_OTYPE、GPIOx_PUPDR、GPIOx_OSPEEDER
- EVENTOUT:配置IO端口复用功能AF15,用于输出Cortex-M3 EVENTOUT信号
6. 输入模式配置所有的IO端口均有外部中断功能,使用外部中断功能时,IO端口必需设置为输入模式
当IO端口配置为输入模式时:
当IO端口配置为输出模式时:
-- 开漏模式时:输出0时,N-MOS导通(P-MOS任何情况下不会导通)-- 推挽模式时:输出0时,N-MOS导通;输出1时,P-MOS导通
当IO端口配置为复用功能时:
当IO端口配置为模拟模式时:
STM32L152XX拥有以下特性
RTC_AF1端口(PC13)可配置为以下功能:
联系客服