PIN
优质
小牛编辑
125浏览
2023-12-01
PIN设备接口
结构体 | |
struct | rt_device_pin_mode |
引脚模式信息 更多... | |
struct | rt_device_pin_status |
引脚状态信息 更多... | |
struct | rt_pin_irq_hdr |
引脚中断信息 更多... | |
struct | rt_pin_ops |
引脚的操作方法 更多... | |
宏定义 | |
#define | PIN_LOW 0x00 |
低电平 | |
#define | PIN_HIGH 0x01 |
高电平 | |
#define | PIN_MODE_OUTPUT 0x00 |
普通输出模式 | |
#define | PIN_MODE_INPUT 0x01 |
输入模式 | |
#define | PIN_MODE_INPUT_PULLUP 0x02 |
输入上拉模式 | |
#define | PIN_MODE_INPUT_PULLDOWN 0x03 |
输入下拉模式 | |
#define | PIN_MODE_OUTPUT_OD 0x04 |
开漏输出模式 | |
#define | PIN_IRQ_MODE_RISING 0x00 |
上升沿触发模式 | |
#define | PIN_IRQ_MODE_FALLING 0x01 |
下降沿触发模式 | |
#define | PIN_IRQ_MODE_RISING_FALLING 0x02 |
边沿触发(上升沿和下降沿都触发) | |
#define | PIN_IRQ_MODE_HIGH_LEVEL 0x03 |
高电平触发模式 | |
#define | PIN_IRQ_MODE_LOW_LEVEL 0x04 |
低电平触发模式 | |
#define | PIN_IRQ_DISABLE 0x00 |
引脚中断禁止命令 | |
#define | PIN_IRQ_ENABLE 0x01 |
引脚中断使能命令 | |
#define | PIN_IRQ_PIN_NONE -1 |
引脚无中断 | |
函数 | |
int | rt_device_pin_register (const char *name, const struct rt_pin_ops *ops, void *user_data) |
注册PIN设备 | |
void | rt_pin_mode (rt_base_t pin, rt_base_t mode) |
设置引脚模式 | |
void | rt_pin_write (rt_base_t pin, rt_base_t value) |
设置引脚电平 | |
int | rt_pin_read (rt_base_t pin) |
读取引脚电平 | |
rt_err_t | rt_pin_attach_irq (rt_int32_t pin, rt_uint32_t mode, void(*hdr)(void *args), void *args) |
绑定引脚中断回调函数 | |
rt_err_t | rt_pin_detach_irq (rt_int32_t pin) |
脱离引脚中断回调函数 | |
rt_err_t | rt_pin_irq_enable (rt_base_t pin, rt_uint32_t enabled) |
使能 / 屏蔽引脚中断 | |
详细描述
PIN设备接口
函数说明
int rt_device_pin_register | ( | const char * | name, |
const struct rt_pin_ops * | ops, | ||
void * | user_data | ||
) |
注册PIN设备
此函数可以注册PIN设备到PIN驱动框架中。
- 参数
name PIN设备名称 ops PIN设备操作方法对象指针 user_data 用户数据,一般设为RT_NULL
- 返回
- RT_EOK 注册成功;-RT_ERROR 注册失败,已有其他驱动使用该name注册。
void rt_pin_mode | ( | rt_base_t | pin, |
rt_base_t | mode | ||
) |
设置引脚模式
此函数可以设定指定引脚的工作模式。
- 参数
pin 引脚编号 mode 引脚工作模式,可以取以下 5 种模式之一 参数 说明 PIN_MODE_OUTPUT 输出 PIN_MODE_INPUT 输入 PIN_MODE_INPUT_PULLUP 上拉输入 PIN_MODE_INPUT_PULLDOWN 下拉输入 PIN_MODE_OUTPUT_OD 开漏输出
- 注解
- 引脚编号需要和芯片的引脚号区分开来,它们并不是同一个概念,引脚编号由PIN设备驱动程序定义,和具体的芯片相关。
void rt_pin_write | ( | rt_base_t | pin, |
rt_base_t | value | ||
) |
设置引脚电平
此函数可以设定指定引脚的输出电平。
- 参数
pin 引脚编号 value 电平逻辑值,可取 2 种值之一,PIN_LOW 低电平,PIN_HIGH 高电平
int rt_pin_read | ( | rt_base_t | pin | ) |
读取引脚电平
该函数可以读取指定引脚的当前电平。
- 参数
pin 引脚编号
- 返回
- PIN_LOW 低电平;PIN_HIGH 高电平
rt_err_t rt_pin_attach_irq | ( | rt_int32_t | pin, |
rt_uint32_t | mode, | ||
void(*)(void *args) | hdr, | ||
void * | args | ||
) |
绑定引脚中断回调函数
此函数可以设定指定引脚的中断触发模式,并可指定中断回调函数。
- 参数
pin 引脚编号 mode 中断触发模式,可取以下 5 种值之一 参数 描述 PIN_IRQ_MODE_RISING 上升沿触发 PIN_IRQ_MODE_FALLING 下降沿触发 PIN_IRQ_MODE_RISING_FALLING 边沿触发(上升沿和下降沿都触发) PIN_IRQ_MODE_HIGH_LEVEL 高电平触发 PIN_IRQ_MODE_LOW_LEVEL 低电平触发 hdr 中断回调函数,用户需要自行定义这个函数,其返回值为 void args 中断回调函数的参数,不需要时设置为 RT_NULL
- 返回
- RT_EOK 成功;失败返回其他错误码。
rt_err_t rt_pin_detach_irq | ( | rt_int32_t | pin | ) |
脱离引脚中断回调函数
调用此函数可以脱离指定的引脚中断。
- 参数
pin 引脚编号
- 返回
- RT_EOK 成功;失败返回其他错误码。
rt_err_t rt_pin_irq_enable | ( | rt_base_t | pin, |
rt_uint32_t | enabled | ||
) |
使能 / 屏蔽引脚中断
此函数可以使能/屏蔽指定引脚的中断。
- 参数
pin 引脚编号 enabled 状态,可取 2 种值之一:PIN_IRQ_ENABLE 开启,PIN_IRQ_DISABLE 关闭
- 返回
- RT_EOK 成功;失败返回其他错误码。