范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

RTThread笔记IO设备模型及PIN设备

  RTT内核对象——设备
  RT-Thread有多种内核对象,其中设备device就是其中一种。
  内核继承关系图如下:
  设备继承关系图如下:
  device对象对应的结构体如下:
  其中,设备类型type有如下几类:
  设备的操作方法结构体:
  I/O设备模型框架
  RT-Thread 提供了一套简单的 I/O 设备模型框架 :
  应用程序通过 I/O 设备管理接口获得正确的设备驱动,然后通过这个设备驱动与底层 I/O 硬件设备进行数据(或控制)交互。
  I/O 设备管理层:实现了对设备驱动程序的封装。 设备驱动程序的升级、更替不会对上层应用产生影响, 从而降低了代码的耦合性、复杂性,提高了系统的可靠性。
  设备驱动框架层: 对同类硬件设备驱动的抽象, 将不同厂家的同类硬件设备驱动中相同的部分抽取出来。
  设备驱动层: 是一组驱使硬件设备工作的程序,实现访问硬件设备的功能。 这一层是与硬件有关的,不同的芯片的同种外设驱动是不同的,STM32的GPIO驱动与NXP的GPIO驱动是不同的。这一层负责创建与注册I/O设备,对于操作逻辑简单的设备,可以不经过设备驱动框架层。设备的两种注册方式
  1、 对于操作逻辑简单的设备,可以不经过设备驱动框架层,直接将设备注册到 I/O 设备管理器中:
  2、 对于另一些设备,如看门狗等,则会将创建的设备实例先注册到对应的设备驱动框架中,再由设备驱动框架向 I/O 设备管理器进行注册 :
  I/O设备接口
  1、创建及注册I/O设备
  设备创建:
  设备注册:
  2、访问I/O设备
  应用程序通过 I/O 设备管理接口来访问硬件设备,当设备驱动实现后,应用程序就可以访问该硬件。 I/O 设备管理接口与 I/O 设备的操作方法的映射关系下图所示:
  查找设备:
  初始化设备:
  打开和关闭设备:
  控制设备:
  读写设备:
  数据收发回调:
  GPIO(PIN)设备模型
  上面说的设备驱动层有两种注册设备的方式,对应的应用程序也有两种访问设备的方式。一种是通过设备操作接口访问,另一种是通过通用的设备驱动来访问。这里我们使用通用的GPIO设备驱动(对应源码:pin.c)来访问GPIO设备。其中通用的设备驱动在RT-Thread代码中作为一个组件,对应的路径为:rt-threadcomponentsdrivers
  这个文件夹下有很多驱动框架:
  我们用的GPIO(PIN)设备驱动pin.c存在于文件夹misc下。
  GPIO输入输出实验(按键点灯):
  创建一个pin线程:
  按键按下LED被点亮,按键松开LED熄灭。static void pin_thread_entry(void *parameter) {     unsigned int count = 1;          /* 设置LED引脚为输出模式 */     rt_pin_mode(PIN_LED_R, PIN_MODE_OUTPUT);          /* 设置KEY0引脚为输入模式 */     rt_pin_mode(PIN_KEY0, PIN_MODE_INPUT);          while (count > 0)     {         /* 读取KEY0引脚状态 */         if (rt_pin_read(PIN_KEY0) == PIN_LOW)         {             rt_thread_mdelay(50);             if (rt_pin_read(PIN_KEY0) == PIN_LOW)             {                 count++;                 rt_kprintf("KEY0 pressed!  LED ON! count = %d ", count);                 rt_pin_write(PIN_LED_R, PIN_LOW);             }         }         else         {             rt_pin_write(PIN_LED_R, PIN_HIGH);         }         rt_thread_mdelay(10);     } }  int main(void) {     /* 线程句柄定义 */     rt_thread_t tid;            /* 创建动态pin线程 :优先级 25 ,时间片 5个系统滴答,线程栈512字节 */     tid = rt_thread_create("pin_thread",                             pin_thread_entry,                             RT_NULL,                             STACK_SIZE,                             THREAD_PRIORITY,                             TIMESLICE);          /* 创建成功则启动动态线程 */     if (tid != RT_NULL)     {         rt_thread_startup(tid);     }       return 0; }
  下载程序,在终端输入list_device命令:
  可以看到device是pin,类型是Miscellaneous Device,说明我们正在使用通用的GPIO设备驱动。这个实验中有三个文件值得关注,分别是device.c:设备管理层 pin.c:设备驱动框架层 drv_gpio.c:设备驱动层
  其中device.c与pin.c属于RT-Thread的范畴,drv_gpio.c与具体的硬件有关,这个文件里操控的就是与硬件有关的东西,如:
  程序中用到的rt_pin_mode及rt_pin_write等都是PIN设备管理接口。PIN设备管理有如下几个接口:
  设置引脚模式:
  RT-Thread 提供的引脚编号需要和芯片的引脚号区分开来,它们并不是同一个概念,引脚编号由 PIN设备驱动程序定义,和具体的芯片相关。
  设置引脚电平:
  读取引脚电平:
  绑定引脚中断回调函数:
  使能引脚中断:
  脱离引脚中断回调函数:
  以上就是本次的笔记,如有错误,欢迎指出。

评测顶级商务本再进化ThinkPadX1Carbon2021ThinkPadX1Carbon2021升级到了1610比例的屏幕,提升了屏占比,同时内部的设计也有进一步的优化,延续一直优秀的键盘手感和非常安静的风扇,出色的续航以及军标对照测试体验5月27日发布的OPPOReno6有哪些亮点和槽点夏日晴海的Reno6配合非常自然地视频美妆视频虚化,还有最新一代最高骁龙870的升级,会是这个夏天非常适合轻薄手机的组合Reno6系列如期而至,还是这个一眼就能认出来的精致设计,以体验iQOONeo5快速上手屏幕由144Hz高刷换成了120Hz,但素质提升,配备振感线性马达,双扬HiRes认证。iQOONeo5在同价位之中有很好的屏幕,优秀的散热和性能,以及更好支持游戏的独立显示芯片。美的智能大会华为鸿蒙智能家居操作系统成亮点美的智能大会华为鸿蒙智能家居操作系统成亮点根据权威调研机构IDC最新数据显示2021年,虚拟现实可穿戴设备与智能家居这三类产品的总价值预计将达3721亿美元,到2025年规模将达5懂行中国行2021华为榆林碳中和能源峰会成功举办绽放矿山的智慧之花懂行中国行2021华为榆林碳中和能源峰会成功举办榆林市人民政府副市长杨向喜10月13日,以智慧能源,榆见新机为主题,懂行中国行2021华为榆林碳中和能源峰会在素有华为郭振兴只有煤矿工业互联网才能彻底实现矿山智能化华为郭振兴只有煤矿工业互联网才能彻底实现矿山智能化华为煤矿军团副总裁郭振兴2021年是国家十四五开局之年,国家大力推进产业数字化战略的转型。煤炭作为我国国民经济的重要组成部分,一直华为大消息!任正非亲自督战,成立四大军团华为大消息!任正非亲自督战,成立四大军团!研发投入太牛了,远超BAT总和华为又有大消息!证券时报e公司记者最新获悉,华为于近日正式发文成立海关和港口智慧公路数据中心能源和智能光伏四报告华为P50Pro屏幕素质报告这是P50Pro,华为目前最新的影像旗舰,它利用全新的原色引擎和计算光学,让4摄组合超常发挥,因此屏幕的硬件和HarmonyOS2上的色彩管理也变得非常重要,这就是我们对P50Pr内存小且浏览速度极快!手机新型搜索工具,你值得拥有羊搜搜是一款便捷小巧,功能超多而且超级实用的小工具,支持的资源很丰富,喜欢看小说的,喜欢磁力搜索的,喜欢看视频的,喜欢听免费音乐的,以及喜欢看漫画的,小羊搜搜都可以满足你的需求,同你喜欢不如我喜欢TFZNo。3林氏评测我还就不信了,所有人都那么喜欢真无线?真无线的优点我们都清楚没有线嘛,你耳朵就显得特没束缚,而且作为当红炸子鸡它在飞速进化着,再过几个月带降噪的真无线应该会大面积铺货,暂时没人抢得与众不同的风TANCHJIM浅野天琪林氏评测这世上的事,自己趟出一条路比跟着别人的脚印难一些。在趟这条路的开始,你最好想清楚自己为什么要这么做,这中间,势必会遇到相对更多的困难和风险,你得有坚持下去的勇气,有不动摇的恒心,这
长城汽车大禹治火,专利免费此前的彩蛋,成为今日的主角。9月24日,长城汽车正式对其耗时一年所开发的大禹电池技术进行揭秘变堵为疏超百搭最严验证,几组神秘的关键词也一一浮出水面。机会,只有一次。长城汽车董事长魏双循环新发展格局下汽车产业如何抢抓新机遇赢得新赛点2021中国(上海)智能与新能源汽车峰会4月18日举行。国内一批知名领导专家就我国双循环新发展格局下汽车产业如何抢抓机遇,赢得发展新赛点这一现实而紧迫的行业问题,畅所欲言,各抒己见够安全才是谈性能的前提,岚图FREE涉水碰撞试验表现如何?如今新能源市场内可供大家选择的产品足以让人挑花眼,而大家对于新能源车的硬件水平要求甚至已经高于燃油车,除了续航充电效率这两个硬性指标外,靠谱的安全性一定是大家的最基本且最重要的诉求小鹏P5亮剑上海车展,率先搭载激光雷达自动驾驶4月19日,小鹏汽车携旗下第三款产品,全球首款搭载激光雷达的量产智能汽车小鹏P5亮相2021上海车展,并宣布小鹏P5正式开启预订。小鹏汽车董事长CEO何小鹏与所有到场嘉宾举办以天生我本U活,北京U5PLUS要当年轻人人生导师的节奏?不要怕摔跤,摔着摔着呀,就长大了。这句台词戳中了多少人的心。若说这段时间全网最火爆的剧,非乔家的儿女莫属。其中乔四美一角所经历的婚姻困境,不仅气得广大网友纷纷吐槽,将其送上微博热搜续航配置双升级,广汽本田VE1TA系列上市售17。48万元起随着多元化的用车需求被提上日程,小型SUV细分市场内的竞争也逐渐变得更激烈,特别是纯电车型这又一细分领域。本田在燃油车型市场的地位相信大家也都有目共睹,而在纯电市场表现确实稍显平淡120分超满分旗舰有多强?120W超快闪充只是开胃菜对于酷客来说,下半年最期待的手机当属iQOO的新旗舰。本以为iQOO会带来iQOO3的升级版iQOO3Pro,未曾想到,iQOO直接官宣了iQOO5系列产品的存在。并且,在8月17氢OS11发布会快速回顾,核心亮点都在这8月10日下午14点一加氢OS11正式发布,官方把这次发布会命名为氢听会2。0。印象之中这是一加第二次单独为氢OS召开发布,从这一点上足以看出一加对于氢OS11的重视程度。全新的设自己动手,几十元就能拥有别人羡慕的车机,你学会了么?很多人开车都需要导航,目前的汽车导航都集合于车机内,如果你的汽车没有车机或者车机坏了,那该怎么办呢?下面笔者告诉你一个非常简单的方法,花不了多少钱,就能拥有豪车就有的车机功能!准备iQOOZ1航海王限量版售罄!定制UI更酷炫,多款壁纸任性选作为一个动漫界的知名IP,相信许多朋友对航海王这个名字都十分熟悉,草帽一伙中个性鲜明的成员无疑也是许多航海王粉丝心中的偶像。而前段时间iQOO官微就宣布了iQOOZ1已与航海王进行调性相符的极佳CP!iQOO5系列和BMWMMotorsport诠释性能双雄近日,iQOO正式宣布成为BMWMMotorsport全球顶级合作伙伴。一个是在手机赛道上追求极致性能的科技产品,一个是在DTM赛事上风光无限,用速度性能成为全场焦点的超级赛车。如