前言
- 参考资料来源于官方资料和源码
- 版本使用的是4.0.3
pin组件
结构体定义
注册 rt_device_pin_register 分析
函数声明
函数定义
- _hw_pin 是已经定义好的一个结构体变量
- 首先是对父结构体的一些字段赋值
- 然后对子结构体的操作结构体变量赋值
这里以_hw_pin.parent.read为例分析
- 找到_pin_read函数
- 找到_hw_pin.ops赋值的地方,需要调用rt_device_pin_register进行赋值,这部分一般是由驱动来进行实习
pin组件在框架中使用的流程
代码流程图
_stm32_pin_ops结构体变量
以stm32_pin_read为例,接着上面的列子调用
对于io口中断的调用流程
- 随便找个io口中断处理函数
配置中断调用函数的流程
配置
注意
- 配置完成之后,中断是不会生效的,一般使用HAL库的话,还需要打开中断,这里rt-thread也提供了对应的函数