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电源电源开关,以及复位按键,可以提高开发者的开发效率。


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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【新品上市】华清远见AIoT实战平台-STM32F103&amp;amp;amp;ESP32-S3 AI开发板套件,玩转小智AI桌宠机器狗智能车等项目

    F103&amp;ESP32-S3AI开发板是华清远见针对嵌入式与AI开发市场需求,打造的高性能、低成本AIoT实战平台。该开发板采用双核心设计,整合了STM32F103与ESP32-
    的头像 发表于 11-03 16:18 805次阅读
    【新品上市】华清远见AIoT实战平台-STM32F103&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;ESP32-S3 AI<b class='flag-5'>开发板</b>套件,玩转小智AI桌宠机器狗智能车等项目

    【RA-Eco-RA6M4开发板评测】Keil开发环境搭建+实现板载LED点灯

    _PORT_04_PIN_04, BSP_IO_LEVEL_HIGH) /* 使用寄存器来实现 LED灯翻转 */ #define LED1_TOGGLE R_PORT4-&
    发表于 08-24 18:59

    【RA4E2开发板评测】LED1LED2轮流点亮并同时亮8秒,体验FreeRTOS多线程

    5 演示效果 通过编译后,Renesas Flash Programmer烧录程序到开发板单片机芯片里。 两颗LED的亮灭时间并不相同,LED1闪亮500ms,LED2闪亮800m
    发表于 08-24 17:24

    【创龙TL3562-MiniEVM开发板试用体验】2、运行AMP案例

    /mmcblk1p8 conv=fsync Target# sync Target# reboot 注:/mmcblk1p8对于的是SD卡分区 四、运行现象 1开发板上2个
    发表于 07-29 14:15

    【创龙TL3562-MiniEVM开发板试用体验】--开发板外设与接口测试

    本篇讲述开发板使用shell命令进行驱动测试。 1.LED亮灭 开发板板载两颗用户LED,原理如下 下面输入脚本命令,可以控制
    发表于 07-27 16:27

    有奖丨米尔 瑞微RK3506开发板免费试用来啦!

    米尔与瑞微合作发布的新品基于瑞微RK3506应用处理器的MYD-YR3506开发板免费试用名额增加啦
    的头像 发表于 07-10 08:03 646次阅读
    有奖丨米尔 瑞<b class='flag-5'>芯</b>微RK3506<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>来啦!

    Texas Instruments AMP-PDK-EVM子开发套件数据手册

    Texas Instruments AMP-PDK-EVM子开发套件设计用于搭配AMP-PDK-EVM主板使用。子套件选项适用于不同封装
    的头像 发表于 07-09 14:15 539次阅读
    Texas Instruments <b class='flag-5'>AMP</b>-PDK-EVM子<b class='flag-5'>板</b><b class='flag-5'>开发</b>套件数据手册

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

    米尔与瑞微合作发布的新品基于瑞微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD
    的头像 发表于 06-19 08:04 854次阅读
    有奖丨米尔 瑞<b class='flag-5'>芯</b>微RK3506<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    有奖丨米尔 瑞微RK3562开发板免费试用新增名额!

    米尔与瑞微合作发布的新品基于瑞微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 855次阅读
    有奖丨米尔 瑞<b class='flag-5'>芯</b>微RK3562<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>新增名额!

    【评测试用】合众HZ-T536开发板免费试用体验

    【评测试用】合众HZ-T536开发板免费试用体验
    的头像 发表于 05-27 08:05 698次阅读
    【评测<b class='flag-5'>试用</b>】合众HZ-T536<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>体验

    【道生物联TKB-620开发板试用】开箱&amp;amp;开发板说明&amp;amp;未来试用计划

    开箱 各位少东家好,很荣幸获得道生物联TKB0620开发板试用机会,同时收到了两套开发板解决了互联互通的调试问题极具诚意,以下是开箱展示: 1、首先是外包装(两个好基友) 2、开箱后里
    发表于 04-13 20:51

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

    米尔与瑞微合作发布的新品基于瑞微RK3562应用处理器的MYD-YR3562开发板免费试用活动来啦~~米尔提供了3块价值599元的MYD
    的头像 发表于 03-20 08:05 806次阅读
    有奖丨米尔 瑞<b class='flag-5'>芯</b>微YR3562<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    dsPIC33EDV64MC205电机控制开发板用户指南

    电子发烧友网站提供《dsPIC33EDV64MC205电机控制开发板用户指南.pdf》资料免费下载
    发表于 01-21 14:34 12次下载
    dsPIC33EDV<b class='flag-5'>64MC</b>205电机<b class='flag-5'>控制</b><b class='flag-5'>开发板</b>用户指南

    【敏矽微ME32G070开发板免费体验】+ADC测试与LED点亮

    *附件:【敏矽微ME32G070开发板免费体验】+ADC测试与LED点亮.docx【敏矽微ME32G070开发板免费体验】+ADC测试与
    发表于 12-16 19:00

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】01、点亮LED

    0 前言 搭建好环境之后,通过点亮LED灯,来测试一下开发板功能并熟悉e2s写代码的流程。 1 硬件部分 通过查阅开发板原理图得知,这款RA-Eco-RA4E2-
    发表于 12-13 13:58