EFM32的gpio口配置方式

【输出】

  1. GPIO_PinModeSet(gpioPortA, 1, gpioModePushPull, 0);
    //设置PA1为推挽输出 (一般用于三极管控制mos管实现电源开关)
    推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力。
    推挽输出是指既可以输出低电平,也可以输出高电平,可以直接驱动功耗不大的数字器件。
    推挽适用于输出而不适用于输入,因为若对推挽(低阻)加高电平后,I=U/R,I会很大,将造成口的烧毁。适用于大功率输出。
    EFM32的gpio口配置方式_第1张图片

  2. GPIO_PinModeSet(gpioPortD, 6, gpioModeWiredAnd, 1);
    //开漏输出 (一般用于带有上拉的引脚)
    EFM32的gpio口配置方式_第2张图片

开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。
输出端相当于三极管的集电极,要得到高电平状态需要加上拉电阻才行。适合做电流型的驱动,其吸收电流的能力比较强(20mA左右)(开漏输出最主要的特性就是高电平没有驱动能力,需要借助外部上拉电阻才能真正输出高电平)。开漏只能输出低电平,高电平的时候实际上是个高阻态,需要外接电阻来拉高的。

开漏输出的这一特性一个明显的优势就是可以很方便的调节输出的电平,因为输出电平完全由上拉电阻连接的电源电平决定。所以在需要进行电平转换的地方,非常适合使用开漏输出。
开漏输出的这一特性另一个好处在于可以实现"线与"功能,所谓的"线与"指的是多个信号线直接连接在一起,只有当所有信号全部为高电平时,合在一起的总线为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。而推挽输出就不行,如果高电平和低电平连在一起,会出现电流倒灌,损坏器件。

  1. GPIO_PinOutClear(gpioPortD, 4); //PD4输出低电平
  2. GPIO_PinOutSet(gpioPortD, 4); //PD4输出高电平

【输入】

  1. 先设置输入,再设置触发中断方式
    GPIO_PinModeSet(gpioPortD, 7, gpioModeInput, 0); //设置PD7为输入

    GPIO_IntConfig(gpioPortD, 7, true, false, true); // 设置PD7为上升沿触发,并使能
    GPIO_IntConfig(gpioPortD, 7, false, true, true); // 设置PD7为下降沿触发,并使能
    GPIO_IntConfig(gpioPortD, 7, true, true, true); // 设置PD7为上升/下降沿触发,并使能

2.设置为带上拉输入
GPIO_PinModeSet(gpioPortD, 4, gpioModeInputPull, 1);

【获取电平】

  1. 读取输出引脚电平
    GPIO_PinOutGet(gpioPortC, 14) //获取PC14的电平

  2. 读取输入引脚电平
    GPIO_PinInGet(gpioPortC, 14) //获取PC14的电平

你可能感兴趣的:(嵌入式)