专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

基于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灯日志。

少喝水?血液粘稠引发疾病多喝水?带走维生素族群和微量元素大家知道,多喝水对身体有好处,像梳理血液和肠道之类的。但是,很多人不知道的是。水喝多了,会带走维生素族群和微量元素,进而引发各种身体问题。喝水所以,每个人每天喝多少水,得自己控制。147143,76人4分险胜步行者,看评分谁是获胜最大功臣?NBA常规赛持续进行,东部排名第三的76人,前往客场挑战东部第十一的步行者。双方实力有一定差距,本应是一边倒的结果,但双方打得难解难分,直到最后一分钟才分出胜负。最终客场作战的76英雄无敌3埃拉西亚点兵录(8地狱族)火光之处人寂寞大家好,我是小辉,欢迎收看英雄无敌3系列文章。这个点兵录系列将详细介绍英雄无敌3的兵种。他们在艰苦的战斗中,都有怎么样的军旅生活,敬请期待。先来靓图镇楼。1阶兵小怪物怪物。爱好僵尸英雄无敌3埃拉西亚点兵录(7塔楼族)时空灰烬中的完美大家好,我是小辉,欢迎收看英雄无敌3系列文章。这个点兵录系列将详细介绍英雄无敌3的兵种。他们在艰苦的战斗中,都有怎么样的军旅生活,敬请期待。先来靓图镇楼。1阶兵小妖精大妖精。爱好丢应氏杯中韩5番大战,箭已上弦,等待出战!应氏杯强强来袭,箭已上弦,等待出战!终于,随着时间的流逝,世界围棋大赛已经大步向着中国棋迷走来,尤其是拖延了3年之久的应氏杯决赛大战。应氏杯被称为围棋届的奥运会,仅仅这一称呼,足见邮报纽卡将和利物浦曼城曼联尤文争切尔西中场芒特根据每日邮报假人记者MaxMatthews的最新报道,纽卡斯尔加入了追逐切尔西中场芒特的行列。这位英格兰球星的合同将在2024年夏天到期,他已经拒绝了俱乐部的多份续约合同。蓝军决心全国攀岩锦标赛将在全南举办来源江西日报江西新闻客户端江西新闻客户端讯(江西日报全媒体记者唐燕通讯员沈亮)3月8日,第二十九届全国攀岩锦标赛暨巴黎奥运会国家攀岩集训队选拔赛新闻发布会在赣州市章贡区召开。记者从史诗级三方交易方案,浓眉哥去尼克斯,拉文托平来湖人辅佐詹姆斯目前,西部附加赛的资格区,竞争十分激烈,乱成一锅粥,独行侠排在第7,快船紧随其后,鹈鹕爵士开拓者湖人四队的战绩相同,而他们身后的雷霆仅仅与他们相差勒0。5个胜场,简单的来说,第9第大满贯陈梦单打冲冠,女双争进决赛?奥运积分清零滑落到第四?新加坡大满贯正赛即将开战,国乒兵强马壮,将会冲击五项大赛的全部冠军。除了男双不太保险外,国乒在男单女单女双和混双项目上势在必得。作为新加坡大满贯的卫冕冠军,拥有奥运会和世界杯两座单广州首批女警船长我在珠江乘风破浪扑通!3月1日13时左右,广州市解放桥沿江西路一侧附近水域传来不小的声响。岸边群众伸头往江面望去,波光中,一个人形般的黑影在江中若隐若现。有人落水了!快报警!随着一声呼喊,群众恍然新疆队的球员该何去何从?体育总局早有安排,新疆男篮有望回归!新疆队的球员该何去何从?体育总局早有安排,新疆男篮有望回归!根据最新消息,新疆男篮目前还在训练。前段时间,篮协和新疆队闹得满城风雨,自从新疆队表明退出CBA后,很多球迷在思考新疆队
新年新篇章2023年,特战旅官兵的愿望是作者林思吉宋晶晶新年愿望伴随着奋进的脚步新的一年徐徐走近在这个万象更新的时节让我们走进第75集团军某特战旅看看不同战位上的战友们有什么新年愿望中士刘月2023年,我的愿望是努力学习2023除夕夜诗词文案,诗词文案来了,诗词里的新年惊艳朋友圈游戏新春创作纪关注森木木,我们一起领略诗词之美除夕即将到来,还在为除夕夜朋友圈的惊艳文案烦恼吗?森木木为大家整理了一些诗词,希望可以帮到大家哦壹元日王安石爆竹声中一岁除,春风送暖入绿城中国浙江区域总经理迟峰曾跳槽到蓝光发展结果离职赋闲再就业运营商财经网孙彩霞文1月初,绿城中国启动了新年的第一次组织架构优化,将浙西区域集团浙东区域公司杭州亚运村项目公司合并,成立浙江区域集团,负责浙江省福建省的投资拓展与项目管理。原浙西RCEP政策红利效应明显各类产品进出口业务量增长央视网消息中国贸促会有关负责人日前表示,区域全面经济伙伴关系协定即RCEP生效实施以来,政策红利不断释放,RCEP也成为世界经济增长的最大亮点。据介绍,随着今年1月RCEP对印度尼2022年广西自贸试验区南宁片区新设立企业超1。6万家1月17日,记者从2022年五象新区(自贸试验区南宁片区)高质量发展情况通报新闻发布会了解到,2022年以来,五象新区以自贸试验区南宁片区为引领,大力推动叠加落户新区的多个国家级开新疆喀什因何吸引锂电池企业纷至沓来?近日,喀什迎来降雪。喀什地区行署党组成员喀什经济开发区党工委书记曲连东等陪同锂电池企业冒雪考察。贺厚强摄中新网乌鲁木齐1月18日电(记者朱景朝)近日,新疆喀什市迎来一场降雪,气温有兄妹仨接班四年再造一个世界500强山东首富首破5000亿四年前,张波兄妹仨接班家族企业,世界500强魏桥创业集团。当时的魏桥深陷环保风暴,并被环保部点名批评。经历关停部分产能的阵痛,集团销售收入也连续两年下滑这家充满传奇色彩的企业,和山财说氢能第一股亿华通登陆港交所,四个交易日股价为何还原地踏步?记者杨马可编辑上周,已在科创板上市的燃料电池系统制造商亿华通(688339。SH02402。HK)正式登陆港交所,成为继国氢科技捷氢科技未势能源国鸿氢能等氢能企业上市潮中第一家成功减轻企业社保费负担14。6亿元!青岛亮2022年社保答卷记者高雅洁通讯员张晓明截至2022年底,青岛市基本养老保险参保人数达到812万人,比2021年底增长29。11万人发放各项工伤保险待遇8。97亿元为全市27。6万户参保企业减轻社保投资者迎2023年开门红包这两项个税减税政策延续个人所得税优惠政策延续又有新动作。1月17日,财政部等发布关于延续实施有关个人所得税优惠政策的公告(下称公告),延续了两项个税优惠政策一项是去年底到期的上市公司股权激励单独计税优惠荷兰大臣荷兰不会草率接受美国对华芯片出口新限制来源环球网环球网报道记者张晓雅据路透社17日消息,荷兰最高贸易官员外贸与发展合作大臣施赖纳马赫尔当地时间15日在接受电视节目采访时表示,荷兰不会草率接受美国对向中国出口芯片制造技术
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网