0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【感芯科技64线程MC3172开发板免费试用体验】1.HAL库实现IO控制Led&Key

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-13 11:20 次阅读

本文来源电子发烧友社区,作者:chenzd, 帖子地址:https://bbs.elecfans.com/jishu_2307398_1_1.html


IO_HAL(项目体验视频,详见作者原帖子)

1.项目概述:

key按下,即引脚PC.1有低电平输入,此时led点亮,即PC.0为低电平;

key弹起,即引脚PC.1悬空,此时led熄灭,即PC.0为高电平。

2.软件调试:

简述hal库的编程的理解:引入HAL层的概念,将软件大致分为三类:第一类hal层:直接和硬件相关,操作寄存器与原始的芯片api;第二类组件层:通过hal层间接操作硬件,只需要了解部分和组件直接相关的必要硬件信息即可,主要目的是实现组件功能,第三类应用层:通过调用组件层,只关注功能,关注硬件。优势:1.有利于多人协同开发:可以按三个层次对人员的工作进行分配,定义好接口,可实现三层软件同时开发,大大提高开发效率2.有利于不同平台的移植:在移植时:应用 层可不过修改,组件层修改量很少,只需要着重修改hal层就可满足要求;

2.1Hal层:

目录结构如下图所示:
hal.png

2.1.1变量:

定义结构体:

结构体元素为初始化io引脚的必要元素如:端口号,序号,输入输出模式,初始电平;

typedefstruct

{

u32 gpio_sel;   //port



u32 Pin;       /*!< Specifies the GPIO pins to be configured.

                       This parameter can be any value of [url=home.php?mod=space&uid=1352397]@ref[/url] GPIO_pins_define */



SYS_GpioModeDef Mode;      /*!< Specifies the operating mode for the selected pins.

                       This parameter can be a value of @ref GPIO_mode_define */

u8 Lev;         //initial electrical level;

}GPIO_InitTypeDef;

2.1.2函数:

用于初始化io引脚,

voidHAL_GPIO_Init( GPIO_InitTypeDef *GPIO_Init);

用于读取引脚的电平状态

u8HAL_GPIO_ReadPin(GPIO_InitTypeDef *GPIO_Init);

2.2组件层

目录结构如下图所示:
组件.png

初始化io引脚的步骤

  1. 定义结构体变量
  2. 为结构体变量赋值
  3. 引用hal函数,即可实现引脚初始化

示例为led引脚初始化:

staticGPIO_InitTypeDef GPIO_LED0;

voidLedInit()

{

GPIO_LED0.gpio_sel = GPIOC_BASE_ADDR;

GPIO_LED0.Pin  = GPIO_PIN0;

GPIO_LED0.Mode =  *SYS_GPIO_OUTPT* ;

GPIO_LED0.Lev = 1;



HAL_GPIO_Init(&GPIO_LED0);

}

voidLedOn();

voidLedOff();

读取引脚的电平状态如下所示:

u8GetKeyState()

ret = HAL_GPIO_ReadPin(&GPIO_KEY0);

2.3应用层

目录结构如图所示:
app.png

voidUserFunction1()

{

KeyInit();

LedInit();



 **while** (1)

{

     **if** (GetKeyState() == 0)

    {

        LedOn();

    }

    **else**

    {

        LedOff();

    }

}

}

整体软件的目录结构为,如下图所示:

all.png

3.硬件接入:

独立按键key连接引脚PC.1,key按下,有低电平输入,key弹起,即悬空;

led连接引脚PC.0,led为共阳极,低电平点亮;

硬件接线如下图所示:
硬件.png

4.视频演示:

实际现象与描述一致。

5.建议

建议在开发板的硬件电路中增加led,key,3.3v/5v电源电源开关,以及复位按键,可以提高开发者的开发效率。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    追加名额丨米尔瑞微RK3576开发板有奖试用

    米尔与瑞微合作发布的新品基于瑞微RK3576应用处理器的MYD-LR3576开发板免费试用活动加码啦~~米尔追加了2块价值849元的MY
    的头像 发表于 11-22 01:00 88次阅读
    追加名额丨米尔瑞<b class='flag-5'>芯</b>微RK3576<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    有奖丨米尔 瑞微RK3576开发板免费试用

    米尔与瑞微合作发布的新品基于瑞微RK3576应用处理器的MYD-LR3576开发板免费试用活动来啦~~米尔提供了7块价值849元的MYD
    的头像 发表于 11-12 01:00 185次阅读
    有奖丨米尔 瑞<b class='flag-5'>芯</b>微RK3576<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    能力再次提升! 迅为RK3588/RK3568开发板&amp;amp;amp;核心新增定制分区镜像

    能力再次提升! 迅为RK3588/RK3568开发板&amp;核心新增定制分区镜像
    的头像 发表于 11-06 15:11 308次阅读
    能力再次提升! 迅为RK3588/RK3568<b class='flag-5'>开发板</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;核心<b class='flag-5'>板</b>新增定制分区镜像

    【RA-Eco-RA2E1-48PIN-V1.0开发板试用】RA-Eco-RA2E1-48PIN-V1.0开发板流水灯测试

    前几天试用的一块瑞萨的RA2L1AB开发板,今天就来尝试一下设置[GPIO]来点亮一盏LED。 收到的开发板各项按钮及插接件功能图如下:
    发表于 11-04 23:25

    迅为itop-3568开发板AMP双系统使用手册之烧写AMP镜像

    迅为itop-3568开发板AMP双系统使用手册之烧写AMP镜像
    的头像 发表于 11-04 15:00 288次阅读
    迅为itop-3568<b class='flag-5'>开发板</b><b class='flag-5'>AMP</b>双系统使用手册之烧写<b class='flag-5'>AMP</b>镜像

    【AG32开发板免费试用】+数据采集存储系统(1)-环境搭建及GPIO控制

    开发板,我添置了台式机并安装了全新系统。 电脑配置如下: 系统版本: 软件安装 这个完全按照如下教程安装。 千万不要自由发挥,老老实实安装就行。 代码编写验证 学习目标 1-GPIO控制 2-
    发表于 10-20 13:35

    【RA-Eco-RA2E1-48PIN-V1.0开发板试用】先来点个灯

    收到瑞萨RA2E1开发板,十分小巧精致。 今天就来点个灯吧。 e2 studio(自带FSP)软件安装就不赘述了,详见: 【RA-Eco-RA0E1-32PIN-V1.0开发板
    发表于 10-18 22:50

    onsemi LV/MV MOSFET 产品介绍 &amp;amp;amp; 行业应用

    01直播介绍直播时间2024/10/281430直播内容1.onsemiLV/MVMOSFET产品优势&amp;市场地位。2.onsemiLV/MVMOSFETRoadmap。3.onsemiT10
    的头像 发表于 10-13 08:06 281次阅读
    onsemi LV/MV MOSFET 产品介绍 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行业应用

    基于 onsemi NCV78343 &amp;amp;amp; NCV78964的汽车矩阵式大灯方案

    大联大世平集团针对汽车矩阵大灯,推出基于onsemiNCV78343&amp;NCV78964的汽车矩阵式大灯方案。开发板搭载的主要器件有onsemi
    的头像 发表于 09-14 08:05 351次阅读
    基于 onsemi NCV78343 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; NCV78964的汽车矩阵式大灯方案

    FS201资料(pcb &amp;amp; DEMO &amp;amp; 原理图)

    电子发烧友网站提供《FS201资料(pcb &amp; DEMO &amp; 原理图).zip》资料免费下载
    发表于 07-16 11:24 0次下载

    RK3568开发板支持AMP双系统

    RK3568开发板支持AMP双系统
    的头像 发表于 06-04 15:33 645次阅读
    RK3568<b class='flag-5'>开发板</b>支持<b class='flag-5'>AMP</b>双系统

    正点原子i.MX 93开发板,双核A55+M33+NPU,双路RS485&amp;amp;FDCAN&amp;amp;千兆网,异核/AI/工业开发

    正点原子i.MX 93开发板,双核A55+M33+NPU,双路RS485&amp;FDCAN&amp;千兆网,异核/AI/工业开发!正点原子i.MX93
    的头像 发表于 05-08 15:00 723次阅读
    正点原子i.MX 93<b class='flag-5'>开发板</b>,双核A55+M33+NPU,双路RS485&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;FDCAN&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;千兆网,异核/AI/工业<b class='flag-5'>开发</b>!

    在TSMaster中加载基于DotNet平台的Seed&amp;amp;amp;Key

    在UDS诊断过程中,会涉及到安全访问的问题,也就是所谓的Seed&amp;Key。TSMaster诊断模块支持通过.dll文件载入Seed&amp;Key算法用于安全访问解锁。在最近发
    的头像 发表于 04-02 08:20 519次阅读
    在TSMaster中加载基于DotNet平台的Seed&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>Key</b>

    飞凌嵌入式OK3568-C-AMP-hal_用户使用手册_V1

    OK3568-C开发板-AMP-hal_用户使用手册_V1.0_20231227
    发表于 01-23 16:36 14次下载

    【ELF 1开发板试用】+ GPIO口的使用

    4)控制GPIO88输出高低电平 其指令为: echo 0 &amp;gt; gpio88/value 所实现的效果如图1和图2所示: 图1
    发表于 12-08 11:28