接口设计
Driver 层接口设计
以下接口是 Pin 设备驱动框架的标准接口。
struct rt_pin_ops { void (*pin_mode)(struct rt_device *device, rt_base_t pin, rt_base_t mode); void (*pin_write)(struct rt_device *device, rt_base_t pin, rt_base_t value); int (*pin_read)(struct rt_device *device, rt_base_t pin); rt_err_t (*pin_attach_irq)(struct rt_device *device, rt_int32_t pin, rt_uint32_t mode, void (*hdr)(void *args), void *args); rt_err_t (*pin_detach_irq)(struct rt_device *device, rt_int32_t pin); rt_err_t (*pin_irq_enable)(struct rt_device *device, rt_base_t pin, rt_uint32_t enabled); rt_base_t (*pin_get)(const char *name); };
函数原型 | void drv_pin_mode(struct rt_device *device, rt_base_t pin, rt_base_t mode) |
---|---|
功能说明 | 设置 Pin 模式,包括输入/输出模式、上下拉模式 |
参数定义 | pin:Pin idmode: 输入/输出模式、上下拉模式 (PIN_MODE_xxx 格式的宏) |
注意事项 | - |
函数原型 | void drv_pin_write(struct rt_device *device, rt_base_t pin, rt_base_t value) |
---|---|
功能说明 | 设置输出 Pin 的电平状态 |
参数定义 | pin:Pin idvalue: 电平状态 0/1 |
注意事项 | - |
函数原型 | int drv_pin_read(struct rt_device *device, rt_base_t pin) |
---|---|
功能说明 | 设置输出 Pin 的电平状态 |
参数定义 | pin:Pin id |
返回值 | 电平状态 0/1 |
注意事项 | - |
函数原型 | rt_err_t drv_pin_attach_irq(struct rt_device *device, rt_int32_t pin, rt_uint32_t mode, void (*hdr)(void *args), void *args) |
---|---|
功能说明 | Pin 注册中断 |
参数定义 | pin:Pin idmode: 中断触发模式,边沿还是电平触发 (PIN_IRQ_MODE_xxx 格式的宏)hdr:pin 中断处理函数 args:中断处理时的自定义参数 |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | rt_err_t drv_pin_detach_irq(struct rt_device *device, rt_int32_t pin) |
---|---|
功能说明 | Pin 注销中断 |
参数定义 | pin:Pin id |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | rt_err_t drv_pin_irq_enable(struct rt_device *device, rt_base_t pin, rt_uint32_t enabled) |
---|---|
功能说明 | 使能 Pin 中断 |
参数定义 | pin:Pin idenabled: 1 = en, 0 = dis |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | rt_base_t drv_pin_get(const char *name) |
---|---|
功能说明 | 根据 Pin Name 获取 Pin Id |
参数定义 | name:Pin Name 字符串 (“PA.1” 类似格式) |
返回值 | Pin Id |
注意事项 | - |