资讯详情

STM32F103C8T6————GPIO工作模式及其部分函数

CPU的引脚以GPIO工作时,可以配置多种模式。(每个系统复位后GPIO引脚自动设置为浮空输入模式)

(1) 浮空输入:IO当有外部接入时,口的电平状态不确定,IO电平状态完全由外部输入决定。

2)模拟输入:接收信号发生器产生的正强波信号等外部模拟信号GPIO当系统需要引脚时AD或D/A转换功能时,需要使用GPIO这种引脚工作模式。

3)上拉/下拉输入:芯片每个引脚的内部电路分别连接上(下)拉电阻。将引脚配置为上(下)拉时,内部电路将与上(下)拉电阻连接。上(下)拉电阻的主要作用是不确定信号通过电阻钳位置在高(低)电平,对了,电阻也起了限流的作用。 4)推挽输出:通俗地讲,输出低电平时,外部电流经GPIO引脚流入芯片,俗称灌溉电流(吸收负载的电流);当平时输出高电,电流通过芯片内部GPIO引脚向外流出,俗称拉电流(为负载提供电流)。因此,该电路的工作形式就像芯片内部设备与外部负载之间的锯推挽,推拉输出方式的电路驱动能力强。 5)开漏输出:在电路结构方面,泄漏输出是指CMOS电路输出级(漏极)直接与外部负载相连,结果是电路没有拉电流的能力,只有高电阻和低电平输出(灌电流)。要克服这一缺陷,需要接外部实现高电平输出的能力。

  • GPIO部分引脚函数
  • 一,
//GPIO_SetBits(GPIOA,GPIO_Pin_5)//将GOIOA口写入高电平  /*操作寄存器*/  Uint16_t GPIO_SetBits(GPIO_TypeDef*GPIOX,uint16_t GPIO_pin)  {  GPIOX->BSRR=GPIO_pin;  }

注:在端口设置寄存器:BSRR。在STM32手册中,BSRR(端口设置/清除寄存器)完成了两个功能:1或0端口。GPIO端口有专门的清零寄存器,所以对于BSRR寄存器,我们专注于其低16位置1功能(高16位负责清0)

//GPIO_ResetBits(GPIOA,GPIO_Pin_5)//将GOIOA低电平口写 /*操作寄存器*/ Uint16_t GPIO_ResetBits(GPIO_TypeDef*GPIOX,uint16_t GPIO_pin) {   GPIOX->BRR=GPIO_pin; }

端口清除寄存器:BRR。BRR与BSRR相反,寄存器的功能是清除0端口。BRR每个人和外部人GPIO引脚一对应.

一、读出刚写入GPIO引脚的值

uintl6_t GPIO_ ReadInputDataBit(GPIO TypeDef* GPIOx, uintl6_t GPIO_Pin) {  uint8_t bitstatus =0x00;  if ((GPIOx->IDR & GPIO_ Pin) != (uint32 t)Bit_RESET)     bitstatus = (uint8_t)Bit_SET;  else  bitstatus = (uint8_t)Bit_RESET; reset bitstatus; } 

(1)端口输入寄存器: IDR。IDR输入数据寄存器保存端口从外部接收的数据(属性仅读取)。由于每个端口只有16个引脚,寄存器只使用低16位(每次接收2字节),高16位不使用。 2,读出GPIO引脚本身输出的值

uint16_t GPIO ReadOnputDataBit(GPIO TypeDef* GPIOx, uint16 tGPIO Pin) { uint8_t bitstatus =0x00; if ((GPIOx->ODR & GPIO_ Pin) != (uint32 t)Bit RESET) bitstatus= (uint8 t)Bit_SET; else bitstatus = (uint8_ t)Bit_RESET; reset bitstatus; } //GPIO_ ReadOutputDataBit (GPIOF, GPIO Pin 8);//使用实例 

(2)端口输出寄存器: ODR 。ODR将从端口发送的数据(属性为可读可写)暂存输出数据寄存器。IDR由于同样的原因,寄存器只使用低16位(每次发送2字节),高16位没有保留。

标签: 8pin电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台