游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

基于RTThread嵌入式物联网应用开发第二章GPIO操作实

  第二章GPIO操作实验
  本章主要内容为通过使用RTThread中的PIN设备接口函数对开发板上板载的LED灯进行操作。主要实现功能为点亮LED灯让其规律闪烁。1。1硬件介绍
  在IOT开发板上已经为我们集成焊接了一个三色的RGB灯,具体位置如下图所示:
  RGB灯图示
  在官方给的原理图资料中我们也可以找到LED模块的电路图。如电路图所示,我们可以发现3个LED灯外接了一个3V的直流电源接口,后面的引脚接入到了单片机的引脚,所以我只需要将单片机的引脚输出改为低电平输出即可点亮LED灯。
  LED灯电路原理图
  LED灯单片机引脚图
  1。2软件设计1。2。1单色灯点亮测试a)功能实现思路分析
  从电路原理图中我们可以发现,LEDG对应了单片机的39号引脚(GPIOPE8)。若不想查看原理图,也可以查看官方给出的IO引脚分配表。分配表中也给出了LEDG对应的GPIO引脚为PE8。
  所以我们只需要利用RTThread为我们提供的通用GPIO驱动来将PE8设置为低电平输出即可点亮LED灯。
  我们需要使用的API函数主要有以下两个,功能分别为设置引脚模式与设置引脚电平。在stuido创建的工程下,有一个drivers的目录,此目录是RTThread为用户封装好的一些常用驱动库。此章节需要使用的为gpio驱动库。关于驱动库的使用方式以及介绍我们可以前往RTThread官方文档中进行查看,此部分内容为设备和驱动下的PIN设备。
  在基于传统HAL库开发中,我们总的开发流程可总结为以下步骤:1。对GPIO口进行配置;2。GPIO口初始化;3。设置GPIO口工作模式;4。设置GPIO口引脚电平状态。使用RTThread进行开发也可总结为以下几个步骤:1。定义引脚编号映射;2。设置引脚工作模式;3。设置引脚电平状态。基于此流程我们可以对软件进行设计。总流程图如图所示:
  软件设计流程图
  在RTThread中获取引脚编号的方式有三种,一种是利用API函数的方式、一种是利用宏定义的方式还有一种是查看驱动文件来获取引脚编号。此历程采用查看驱动文件来获取引脚编号,其他方式的使用场景请自行前往官方文档查看。
  查看驱动文件来获取引脚编号具体实现步骤如下:
  1。打开drivers目录下的drvgpio。c文件。打开过后我们可以看到已经给我们定义了非常多的相关宏定义以及结构体
  2。找到staticconststructpinindexpins〔〕结构体,此结构体中为我们设置了单片机与操作系统引脚编号的映射关系。
  3。找寻自己需要的端口号。以STM32PIN(72,E,8)为例,E为GPIO口名称,即GPIOE。8为引脚号,即PE8。则72就是对应的引脚编号。所以PE8端口在RTThread中对应的引脚编号为72。我们在使用过程中只需要定义一个宏定义值为72即可对应单片机的PE8端口。
  在我们得到了引脚编号后,即可进行代码编写,调用想用的API函数进行GPIO口的工作模式设定以及电平工作状态设定。b)设置引脚模式
  引脚在使用前需要先设置好其工作模式是输入模式还是输出模式,需要调用的API函数接口如下:voidrtpinmode(rtbasetpin,rtbasetmode);
  具体参数详解如下表:
  参数
  描述
  pin
  引脚编号
  mode
  引脚工作模式
  引脚编号即为我们在上一步中在驱动文件中查询到的引脚编号,比如PE8为72,我们只需要传入72即可。引脚的工作模式目前RTThread支持的宏定义为5中宏定义。具体解释如下表所示:
  参数
  描述
  definePINMODEOUTPUT0x00
  输出
  definePINMODEINPUT0x01
  输入
  definePINMODEINPUTPULLUP0x02
  上拉输入
  definePINMODEINPUTPULLDOWN0x03
  下拉输入
  definePINMODEOUTPUTOD0x04
  开漏输出
  所以参数mode我们只需要传入定义好的宏定义即可。c)设置引脚电平
  上一步我们设置完了引脚的工作模式为输出模式,这一步我们需要对引脚的电平进行设置,从9。1节中我们可以得到只需要将GPIO引脚设置为低电平即可点亮LED灯。所以我们只需要利用API函数将其设置成为低电平即可完成此功能。
  需要使用的API函数接口如下:voidrtpinwrite(rtbasetpin,rtbasetvalue);
  参数讲解如下:
  参数
  描述
  pin
  引脚编号
  value
  电平逻辑值,可取2种宏定义值之一:PINLOW低电平,PINHIGH高电平d)具体代码实现
  在上一小节中,我们已经将从硬件到使用API函数接口去实现功能做了完整的分析。下面我们将开始着手编写代码,进行实际操作。
  具体实现步骤如下:
  1。打开我们新建的工程,新建一个led的源文件。
  2。在源文件中导入需要的头文件includertthread。h,includertdevice。h;定义led线程句柄、定义相关宏定义的值;
  3。编写led线程入口函数,入口函数里实现在上一小节中梳理的引脚设置模式。
  4。编译、下载运行。导入头文件includertthread。hincludertdevice。h定义线程句柄与GPIO引脚宏定义staticrtthreadtLEDGThreadRTNULL;defineLEDG72defineTHREADPRIORITY25defineTHREADSTACKSIZE512defineTHREADTIMESLICE5编写入口函数staticvoidLEDGThreadEntry(voidparmas){设置引脚模式rtpinmode(LEDG,PINMODEOUTPUT);设置引脚电平状态rtpinwrite(LEDG,PINLOW);rtkprintf(ledgon。);}intledG(void){创建线程LEDGThreadrtthreadcreate(ledthread,LEDGThreadEntry,RTNULL,THREADSTACKSIZE,THREADPRIORITY,THREADTIMESLICE);if(LEDGThreadRTNULL){rtkprintf(createledthreadfailed。);return1;}启动线程rtthreadstartup(LEDGThread);return0;}导出到msh命令列表中MSHCMDEXPORT(ledG,ledG);
  5。打开终端命令行执行ledG命令,查看结果。我们可以发现在终端控制台中会打印一段话ledgon。且在开发板上会发现LED灯部分绿色的灯亮起。如下图所示:
  实验结果图1。2。2呼吸灯应用a)功能实现思路分析
  我们在上一小节中对开发板中单色RGB灯进行了点亮操作,从电路图中我们可以发现还有另外两只RGB灯可供使用。在此小节我们将实现三色灯交替闪烁的功能。
  对于电路原理图以及单片机引脚接口都可以在原理图中以及引脚分配表中查询到,LEDB对应了PE9,LEDG对应了PE8,LEDR对应了PE7。在代码实现部分我们的步骤也分为以下三步:1。定义引脚编号映射;2。设置引脚工作模式;3。设置引脚电平状态。在设置引脚电平状态时我们需要对另外两个RGB灯进行关闭,确保在一个时间段能开启一个RGB灯,依次循环即可实现呼吸灯的效果。具体流程图如下所示:
  软件流程图b)具体代码实现
  我们需要使用的API接口函数和查看单片机引脚编号的方法已经在上小节中做了介绍,这里就不在赘述了。我们编写功能代码时,按照流程图的思路进行编写即可。
  1。新建一个源文件,文件名自行更改。
  2。导入相关的头文件。
  3。创建RGB线程,并编写线程入口函数,入口函数中实现我们需要的功能。
  4。编译、下载、运行。
  具体代码实现如下:导入头文件includertthread。hincludertdevice。h定义线程句柄与GPIO引脚宏定义staticrtthreadtRGBThreadRTNULL;defineLEDB73defineLEDG72defineLEDR71defineTHREADPRIORITY25defineTHREADSTACKSIZE512defineTHREADTIMESLICE5编写入口函数staticvoidRGBThreadEntry(voidparmas){设置引脚模式rtpinmode(LEDB,PINMODEOUTPUT);rtpinmode(LEDG,PINMODEOUTPUT);rtpinmode(LEDR,PINMODEOUTPUT);设置引脚电平状态1。先打开LEDB其他关闭然后延迟500ms打开LEDG其他关闭延迟500ms,打开LEDR其他关闭while(1){rtpinwrite(LEDB,PINLOW);rtpinwrite(LEDG,PINHIGH);rtpinwrite(LEDR,PINHIGH);rtthreadmdelay(500);rtkprintf(LEDBon。);rtpinwrite(LEDB,PINHIGH);rtpinwrite(LEDG,PINLOW);rtpinwrite(LEDR,PINHIGH);rtthreadmdelay(500);rtkprintf(LEDGon。);rtpinwrite(LEDB,PINHIGH);rtpinwrite(LEDG,PINHIGH);rtpinwrite(LEDR,PINLOW);rtthreadmdelay(500);rtkprintf(LEDRon。);}}intRGBDemo(void){RGBThreadrtthreadcreate(RGBThread,RGBThreadEntry,RTNULL,THREADSTACKSIZE,THREADPRIORITY,THREADTIMESLICE);if(RGBThreadRTNULL){rtkprintf(creatergbthreadfailed);return1;}rtthreadstartup(RGBThread);return0;}MSHCMDEXPORT(RGBDemo,RGBDemo);
  我们把代码编译、下载到开发板中,打开终端命令行,输入RGBDemo命令执行此线程代码。可以发现实验结果如下。
  1。RGB灯部分红、蓝、绿交替闪烁。
  2。在终端命令行中循环打印led灯日志。

真正会穿搭的男人不穿西裤,不暴露年龄,换成这4条裤子更高级在多元化的时尚界,很多服装单品被赋予不同的风格属性。比如西裤,早已不仅限于正装搭配、正式造型穿搭中,它也可以兼顾时尚休闲感,摇身一变成为潮男们的必备的出街单品。但是,无论……正能量的谣言也是谣言这两天读到了一篇奇文,标题是《美国已经发动生化战争?蓬佩奥称病毒系人为泄露》。文中说:人类历史一直就是和各类战争纠缠在一起。对苏联,真正的战争不是群体作战,我们用经济战给……百年前那些先驱们(49)(王尽美)今天开始介绍济南共产党早期组织成员王尽美。王尽美,原名王瑞俊,又名烬美、烬梅,字灼斋,山东莒县(今属诸城市)人。济南共产党早期组织的创始人之一,山东省党组织最早的组织者与……昆仑万维提示天工3。5存在不确定性风险证券时报记者赵黎昀4月10日宣布即将推出对标ChatGPT的双千亿级大语言模型天工3。5后,昆仑万维(300418)股价冲击近年高点,4月13日盘中一度达55元股,年内已……几分钟发一盆面,只加酵母就废了,添加一步,面团乐开花在历史文化悠久的中国,一场突如其来的疫情,打乱了人们的生活节凑,个个居家隔离,老师成为了主播,父母成了老师,全国人民成为了厨师,网上出现了各种美食做法,轰动一时的凉皮,猫耳朵,……三千以内的高性价比手机推荐,这5款还有256G大内存,很值得今天给大家带来的是三千价位的高性价比手机推荐系列,这五款全部都是大内存!第一款:真我GTNeo2(256g)对于我来说真我GTNeo2是去年用过最好用的直屏手机,搭载高通……玉竹泡水,秋燥养阴玉竹煲汤,法力无边三甲天团徐莲薇上海中医药大学附属龙华医院妇科主任医师刘希昱上海中医药大学附属龙华医院妇科01玉竹功效多玉竹,一名葳蕤,为百合科多年生草本植物……华为Mate50系列或首发智感扫码功能,后置摄像头智能感知二继华为Mate40系列首发智感支付后,华为Mate50系列或首发智感扫码功能。根据数码博主熊猫很禿然爆料称:Mate50系列首发智感扫码功能,手机亮屏在桌面时,后置摄像头……一日三餐普通的生活餐,最后四张是土豪生活,网友小样,想馋我早上起来,急忙在烧饼店买了几个博山烧饼,很多人对烧饼,火烧,馅饼容易混为一起,我们淄博分的很清楚,图为地道的烧饼,一般都会带芝麻,比如周村烧饼。馅饼为菜饼,火烧为图2的面食……夏天食材减肥大揭秘,凉拌素菜是最爱,网友减肥这么简单夏天食材减肥大揭秘,凉拌素菜是最爱,网友:减肥这么简单导语:爱美之心人皆有之,马上进入夏天,对于减肥的人来说是一个幸运季,不管怎么样,必须管住自己的嘴,吃的健康,能量低的……爆红的小洋人,是如何在饮品赛道退烧的80后90后的青春如果有味道,那一定是小洋人的味道。继黄桃罐头、螺蛳粉、电解质水后的又一大抵抗神器小洋人,最近开始重归大众视线。任何一个意外坠入流量池里的事物在互联网上免……去烧烤吃饭,点这四种烤菜,一看就是内行人老板直乎赔钱去烧烤吃饭,点这四种烤菜,一看就是内行人:老板直乎赔钱天气一天天变暖,虽然今年闰四月,但是也挡不住春天的到来,由于疫情的压抑,人们多想出去撸串去,今天已经进入四月了,各个……
准备买几件飞天茅台存着给儿子结婚用,整件的应该如何封装保存?谢邀!茅台酒的储存需要注意以下三个问题:第一,尽量营造密闭空间由于酒当中的酒精是具有挥发性的,酒的挥发极易受到外界环境的干扰,如果保持有密闭空间的话,外界干扰……外媒打压华为的效果出现了都知道华为是国内最舍得投钱做研发的公司,仅2022年,华为的研发投入就超过1300亿元,位列全球前五,国内第一。而这10年下来,华为研发经费更是突破8000亿,放眼全球都是凤毛……中国世界文化遗产预备名单的详细名单?预备名单里包含26项文化遗产:1中国白酒老作坊:杏花村汾酒老作坊(山西省汾阳市)、成都水井街酒坊(四川省成都市)、泸州老窖作坊群(四川省泸州市)、古蔺县郎酒老作坊(四川省……山东真的没有名酒吗?山东有名酒,还很早就有,唐朝时就与山西名酒齐名。只不过山东喝酒太出名了,压过了产酒的名气。这里和酒友们分享山东值得骄傲的三种酒。第一种,鲁酒。有记载的历史是孔子喝酒。印象……上海有哪些特色小吃?老上海的街头小吃称得上品种繁多,价廉物美、果腹饱肚、吃食方便,是深受群众喜爱的点心,从清晨的四五点钟起上市供应,随君选食。粢饭是颇受大多数人喜爱的一种大众化早点,糯米掺粳米配以……3k价位段的不二之选!双芯旗舰vivoX80打造出色体验纵观目前的3k价位段手机市场,性能强的手机往往在影像、设计等方面的表现不太行,影像强的手机往往在性能、游戏等方面的表现不太行,各个方面都没有明显短板的全能机型真的非常少,但并不……别信云体验!华硕无畏Pro152022到底好不好?真实用户说最近正值暑期数码产品大促期间,很多小伙伴都会选择在这个时段给自己换置一些数码设备,而作为上班族的我也不例外,由于经常需要外出出差和移动办公,我也打算为自己入手一款笔记本。目前来……你们家的一日三餐是怎么样的,可以晒晒吗?我的家乡在山西省晋东南地区。那里的一日三餐主要是以面食为主,其次吃的最多的就是大米和黄小米。山西面食在全国都是极为著名的,它是地方地方传统特色面食文化代表之一,历史悠久,……一碗米饭玩转营养早餐!不调味不用捏,宝宝吃一次馋一次早餐想要吃得营养,不一定要准备得多么丰盛,家里现有的食材也可以做得又健康又丰富。米饭家里都有的吧,蔬菜鸡蛋家里也是常备的吧,造型随手一凹,精致可爱的饭团便呈现在眼前,美味又吸睛……林志玲家暴风波后生图曝光,法令纹黑眼圈抢镜,眼神憔悴状态不佳作为曾经的湾湾第一美女,林志玲的颜值一直都备受媒体的关注,近日,港媒曝光了一组林志玲拍摄广告的生图,照片中的她满脸痘印,黑眼圈、法令纹十分明显,画面曝光后,迅速引发热议。……四川省土地面积最小的地级市,不到成都的13,人口不到320万我国南北纵横数千公里,有省市自治区数十个,拥有无数的特色城市。像三亚、厦门、大连等地,都拥有让人向往的海滩美景,而大理、丽江、西安等城市,就拥有文化底蕴深厚的古城,这些特……为什么有的香港人喝茶喜欢喝寿眉?分享一下,我在收老白茶时了解到的情况。2008年左右,我曾经收藏一批从香港药铺买来的寿眉,据卖家当时说已经在他家存了35年。这也是我第一次喝这么老的寿眉,浓郁的老茶香气,……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网