MCP23017 引脚类型

MCP23017是一款I/O扩展芯片,通过I2C接口与主控器进行通信。该芯片有多个寄存器,用于配置和控制其GPIO引脚。以下是一些常用的寄存器及其功能说明:

  1. IODIR(I/O方向寄存器)
  • IODIRAIODIRB分别用于配置Port A和Port B的每个引脚是输入还是输出。
  • 每个位设置为1表示对应的引脚为输入,设置为0表示为输出。
  1. IPOL(输入极性寄存器)
  • IPOLAIPOLB用于反转输入引脚的极性。
  • 设置为1会反转输入信号的极性(高电平变低电平,低电平变高电平)。
  1. GPINTEN(GPIO中断使能寄存器)
  • GPINTENAGPINTENB用于使能Port A和Port B的引脚中断。
  • 设置为1使能中断,0则禁用该引脚的中断。
  1. DEFVAL(默认比较值寄存器)
  • DEFVALADEFVALB用于设置Port A和Port B的每个引脚的默认比较值。
  • INTCON寄存器对应位设置为1时,会将输入引脚的值与DEFVAL进行比较以触发中断。
  1. INTCON(中断控制寄存器)
  • INTCONAINTCONB用于控制Port A和Port B的中断触发条件。
  • 设置为1时,中断触发条件为引脚输入值与DEFVAL比较不相等;设置为0时,中断触发条件为引脚电平变化。
  1. GPPU(GPIO上拉电阻寄存器)
  • GPPUAGPPUB用于使能Port A和Port B引脚的内部上拉电阻。
  • 设置为1使能内部上拉电阻,0则禁用。
  1. INTF(中断标志寄存器)
  • INTFAINTFB用于标记Port A和Port B的中断引脚。
  • 读取该寄存器可以确定哪个引脚触发了中断。
  1. INTCAP(中断捕获寄存器)
  • INTCAPAINTCAPB用于保存Port A和Port B的引脚在中断时的状态。
  • 读取该寄存器会清除中断标志。
  1. GPIO(GPIO寄存器)
  • GPIOAGPIOB用于读取和写入Port A和Port B引脚的状态。
  • 读取该寄存器可以获取当前引脚的状态,写入则可设置输出引脚的状态。
  1. OLAT(输出锁存寄存器)
    • OLATAOLATB用于锁存Port A和Port B的输出状态。
    • 写入该寄存器可以改变输出引脚的状态,读取则返回锁存的状态。

这些寄存器提供了丰富的功能来配置和控制MCP23017的GPIO引脚。使用这些寄存器时,需要根据具体应用需求进行设置,以实现所需的功能。