文件名称:GPIO寄存器介绍-a2-漫画相对论
文件大小:6.09MB
文件格式:PDF
更新时间:2024-07-01 09:23:26
STM8 STVD IAR 寄存器 库函数
3.1 GPIO简介 因为很多实验都是通过与 STM8单片机相连的 LED来展示实验现象,所以我们首先来讲解 STM8的 GPIO。 GPIO(General Purpose Input/Opuput,通用输入/输出口)用于单片机和外部设备进行数据传输,当 GPIO 设置为输出时,单片机可以输出任意数据到 GPIO;当 GPIO设置为输入时,单片机可以读取别的设备传 输至 GPIO上的数据。GPIO是单片机的最普通也是最重要的外设。有些 GPIO除了做为普通输入输出使 用之外,还具有第二功能。 STM8单片机的 GPIO一组 I/O端口最多有 8个管脚,每个管脚都可以独立的被编程为数字输入或数 字输出;有些 I/O还具有模拟输入、外部中断、片上外设等第二功能。但是,某一个时刻只能完成一个功 能。 STM8的 GPIO功能可以总结为如下: ■ 端口的各个位可以被单独设置; ■ 输入模式可选择:浮动输入、上拉输入; ■ 输出模式可选择:推挽输出、开漏输出; ■ 输出数据、输入数据有单独的寄存器; ■ 外部中断可以单独的使能、关闭; ■ 输出摆率可设置,以减少 EMC; ■ 具有片上外设第二功能 ■ 作为模拟输入时可以关闭输入施密特触发器来降低功耗; ■ I/O工作电压宽:1.6V-5V; GPIO的各个位能够被单独设置意味着对对某一管脚进行设置时不会影响同一组端口上的其他管脚。 浮动输入与上拉输入是 GPIO作为输入时的两种方式,浮动输入是 GPIO的管脚的电平状态是不确定 的,容易受到外部电平的干扰;上拉输入时,管脚的电平则只有高电平或低电平两种确定的状态。一般 I/O做外部中断输入时要设置为上拉输入,做 A/D转换时要设置为浮动输入。 推挽输出、开漏输出则为 GPIO输出的两种方式。单片机的 GPIO输出高电平时形成的电流我们称为 拉电流;输出低电平时形成的电流,我们称为灌电流。一般将拉电流和灌电流作为评价一个单片机端口 驱动能力的指标,对于驱动能力不足的单片机,我们可以增加推挽或开漏电路来增加端口的驱动能力。 推挽输出方式能够独立的输出高电平和低电平,适合驱动数字器件;开漏输出可以稳定的输出低电 平,能承受大的灌电流,但是开漏输出无法输出高电平,需要外接上拉电阻才可以输出高电平,输出的 高电平则有外接的上拉电平决定,这种输出方式适合做电流型驱动。 3.2 GPIO寄存器介绍 STM8的 GPIO可以通过 4个寄存器来进行设置: ■ 端口 X输出数据寄存器 Px_ODR—存放端口要输出的数据 ■ 端口 X输入寄存器 Px_IDR—存放引脚的状态值 ■ 端口 X数据方向寄存器 Px_DDR—设置端口的输入/输出 ■ 端口 X控制寄存器 1 Px_CR1—设置端口输入模式、输出模式