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

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

3天内不再提示

单片机按键中断配置教程

strongerHuang 来源:strongerHuang 2024-10-23 16:30 次阅读

作者 | strongerHuang

微信公众号 | strongerHuang

一些小伙伴觉得单片机入门太难了,又要懂原理图、又要懂寄存器、还要学编程语言......

其实,现在入门比我们之前学习单片机要简单多了,我们那会儿网络还不这么发达,网上教程几乎很少,再次,就是现在各种配置工具,只需要动动鼠标就能创建工程,随便写两段代码,就能让单片机跑起来了。

即便是现在单片机寄存器越来越多、功能模块也越来越多,但现在工具越来越强了啊,不用你一步一步移植代码了。

这里结合瑞萨e2 studio工具,以及RA8D1单片机,配置一个按键中断给大家看看,你会发现其实很简单。

准备工作

开发RA8D1单片机需要提前安装好软件工具,还有准备好RA8板卡以及下载调试器。

1、下载安装集成开发环境

开发瑞萨RA8系列单片机的工具有很多,常见的主要是:

e2 studio一站式服务工具

RASC + Keil,或RASC + IAR

推荐大家使用瑞萨官网的 e2 studio 一站式服务工具。

2、准备硬件板卡

本教程就使用瑞萨CPKCOR_RA8D1B评估板,这块板卡集成了J-link,我们只需要用一根线连接电脑即可下载调试。

e2s配置按键中断

e2 studio可以理解为包含单片机底层配置工具、编辑器、编译器、调试器等多种功能为一体的一站式服务工具,和其他一些MCU厂商的“可视化配置工具”类似,只需要动动鼠标,就能快速创建瑞萨单片机软件工程。

我们这里配置一个LED翻转(亮灭)+一个按键(Key)中断:按键按一次,LED翻转一下。

1、基于e2s快速创建软件工程模板

打开e2s,文件 -> 新建 -> 瑞萨C/C++项目 -> Renesas RA:

wKgaoWcYtEWAGC_4AAFcz71tq2I678.png

输入工程名称,比如我们输入RA8D1_KEY:

wKgZoWcYtEWAfSLpAAEeVDxHqAw079.png

选择单片机型号,比如R7FA8D1BHEC:

wKgaoWcYtEWAOKp4AAHj6By3g8c440.png

选择Non-TrustZone项目工程:

wKgZoWcYtEWABxdSAANf-GsJlQY999.png

选择Executable:

wKgZoWcYtEWAb9DlAAFnOGdk5Wg618.png

选择【Bare Metal-Minimal】,然后点击完成,一个项目模板就创建好了。

wKgaoWcYtEWAcr6bAAFmmzBEOFU955.png

2、配置LED+KEY中断

在【Pins】选项栏,选中LED引脚,我们这里PA01,配置为输出模式。

wKgZoWcYtEWAHnkWAAJuURnolkw234.png

然后,在IRQ栏目下,选在对于的中断号,我们使用P008作为按键中断,这里就是IRQ12。

wKgaoWcYtEWAfj_YAAJQcRwkkHY791.png

在【Stacks】选项栏,新增一个Stack ->Input -> External lRQ:

wKgZoWcYtEWAM8dTAAItvymJF-U790.png

然后,设置对应属性:

wKgaoWcYtEWAJ38uAAINiAHpbZk125.png

3、添加代码实现按键中断功能

这里,我们只需要在自带的hal_entry.c源文件下添加少许代码,即可实现按键中断:按键KEY按下,LED翻转

wKgZoWcYtEWAZjZJAALs9_zH9gk808.png

#include "hal_data.h"


FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER


/* 定义LED翻转 */
#define LED_TOGGLE R_PORT10->PODR ^= 1<<(BSP_IO_PORT_10_PIN_01 & 0xFF)


/*******************************************************************************************************************//**
 * main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used.  This function
 * is called by main() when no RTOS is used.
 **********************************************************************************************************************/
void hal_entry(void)
{
    /* TODO: add your own code here */


    //中断初始化
    R_ICU_ExternalIrqOpen(&g_external_irq12_ctrl, &g_external_irq12_cfg);
    R_ICU_ExternalIrqEnable(&g_external_irq12_ctrl);


    while(1)
    {
    }
#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}


/* 按键中断回调函数 */
void key_external_irq_callback(external_irq_callback_args_t *p_args)
{
    /* 判断中断通道 */
    if (12 == p_args->channel)
    {
        LED_TOGGLE;   // 按键KEY按下,LED翻转
    }
}
实现效果: 最后,这样配置,是不是相对以前那种一步一步移植代码更简单?
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632689
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119975
  • 瑞萨
    +关注

    关注

    34

    文章

    22290

    浏览量

    86029
  • 中断
    +关注

    关注

    5

    文章

    895

    浏览量

    41383

原文标题:单片机中断这样配置,是不更简单?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机中断优先级应用案例

    单片机同时接收到几个中断请求时,单片机中断请求的响应顺序是如何确定的?实际上,单片机是通过中断
    发表于 10-31 14:42 1432次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>中断</b>优先级应用案例

    单片机教程十七:单片机中断系统

    单片机教程十七:单片机中断系统 单片机中断系统的概念:什么是中断,我们从一个生活中的例程引入
    发表于 05-15 23:11 5009次阅读
    <b class='flag-5'>单片机</b>教程十七:<b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统

    单片机中断系统介绍_51单片机中断系统结构

    单片机中断就是当单片机正在执行程序的时候,突然某个按键按下了(产生外部中断),单片机就必须得去处
    发表于 01-10 17:29 1.2w次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统介绍_51<b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统结构

    单片机外部中断程序下载

    单片机外部中断程序和电路图,通过按键控制计数和清零操作
    发表于 05-21 10:57 0次下载
    <b class='flag-5'>单片机</b>外部<b class='flag-5'>中断</b>程序下载

    51单片机中断用法实例解析

    51单片机的外部中断0引脚接一只按键,该按键通过上拉电阻接到电源,即没有按键发生时单片机检测到的
    发表于 12-12 15:31 2.5w次阅读
    51<b class='flag-5'>单片机</b><b class='flag-5'>中断</b>用法实例解析

    使用51单片机外部中断按键控制LED闪烁的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机外部中断按键控制LED闪烁的程序免费下载。
    发表于 07-05 17:41 27次下载
    使用51<b class='flag-5'>单片机</b>外部<b class='flag-5'>中断</b><b class='flag-5'>按键</b>控制LED闪烁的程序免费下载

    单片机--中断系统实验

    实验目的和任务目的:利用“模块化单片机教学实验平台”,加深对单片机中断系统的理解。任务:利用单片机中断系统完成程序设计。 实验内容使用A
    发表于 11-05 13:20 11次下载
    <b class='flag-5'>单片机</b>--<b class='flag-5'>中断</b>系统实验

    单片机按键使用程序 (51单片机

    单片机独立按键使用程序 (51单片机)独立按键单片机中很重要的一个器件,在这篇文章里,通过这个用独立
    发表于 11-11 18:36 108次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>按键</b>使用程序 (51<b class='flag-5'>单片机</b>)

    51单片机按键检测--独立按键与矩阵键盘

    按键,每个按键对应一个IO口,通过循环或者中断去检测,这种方法常用于按键个数较少得时候。如果按键的个数较多,每个
    发表于 11-12 11:06 15次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>按键</b>检测--独立<b class='flag-5'>按键</b>与矩阵键盘

    【51MCU】51单片机定时器中断写MIDI音乐(按键可切换音乐)

    51单片机定时器中断写MIDI音乐(按键可切换)
    发表于 11-12 13:36 21次下载
    【51MCU】51<b class='flag-5'>单片机</b>定时器<b class='flag-5'>中断</b>写MIDI音乐(<b class='flag-5'>按键</b>可切换音乐)

    PIC单片机 按键检测识别

    目录按键和PIC单片机一、按键二、按键的物理连接与检测三、PIC16F18854单片机按键检测及
    发表于 11-16 12:36 12次下载
    PIC<b class='flag-5'>单片机</b> <b class='flag-5'>按键</b>检测识别

    STM32单片机外部中断配置讲解

    STM32单片机外部中断配置讲解01单片机外部中断简介所谓外部中断,就是通过外部信号所引起的
    发表于 11-22 12:36 14次下载
    STM32<b class='flag-5'>单片机</b>外部<b class='flag-5'>中断</b><b class='flag-5'>配置</b>讲解

    瑞萨单片机之外部中断实现按键的长按与短按(二)

    瑞萨单片机通过外部中断实现按键的长按与短按
    发表于 11-22 14:21 20次下载
    瑞萨<b class='flag-5'>单片机</b>之外部<b class='flag-5'>中断</b>实现<b class='flag-5'>按键</b>的长按与短按(二)

    STM32单片机外部中断简介 STM32单片机外部中断配置过程

    STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块以及优秀的扩展性,开发周期短、成本低。在单片机应用中,外部中断是一种重要的硬件触发方式,本文将对 STM32
    发表于 08-15 18:21 2919次阅读

    单片机用按钮中断函数

    单片机用按钮中断函数  单片机中断是一种能够使单片机响应外部信号的机制,这种机制允许单片机在处理
    的头像 发表于 09-01 10:17 1460次阅读