国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

按鍵外部中斷的軟件設計

瑞薩嵌入式小百科 ? 來源:野火電子 ? 2025-09-23 10:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

15.3.2

軟件設計

15.3.2.1

新建工程

對于e2studio開發環境

拷貝一份我們之前的e2s工程“11_GPIO_LED”,然后將工程文件夾重命名為“16_ICU_External_IRQ”,最后再將它導入到我們的e2studio工作空間中。

對于Keil開發環境

拷貝一份我們之前的Keil工程“11_GPIO_LED”,然后將工程文件夾重命名為“16_ICU_External_IRQ”,并進入該文件夾里面雙擊Keil工程文件,打開該工程。

工程新建好之后,在工程根目錄的“src”文件夾下面新建“key”文件夾,再進入“key”文件夾里面新建源文件和頭文件:“bsp_key_irq.c”和“bsp_key_irq.h”。工程文件結構如下。

列表1:文件結構

左右滑動查看完整內容

16_ICU_External_IRQ
├─ ......
└─src
├─ led
│ ├─ bsp_led.c
│ └─ bsp_led.h
├─ key
│ ├─ bsp_key_irq.c
│ └─ bsp_key_irq.h
└─ hal_entry.c

15.3.2.2

FSP配置

首先打開“16_ICU_External_IRQ”項目的FSP配置界面,接下來我們要在這個界面里配置芯片的引腳及其相應的功能。

以野火啟明6M5開發板為例,首先配置引腳連接到ICU的中斷通道。

d19290c0-8dfc-11f0-8c8f-92fbcf53809c.png

點擊可查看大圖

然后,依次點擊“Stacks”->“NewStack”->“Input”->“ExternalIRQ”來加入外部中斷模塊,如下圖所示。由于使用兩個按鍵,需要兩個外部中斷,所以這里需要加入2個外部中斷模塊。

d1ed447a-8dfc-11f0-8c8f-92fbcf53809c.png

點擊可查看大圖

第一個外部中斷模塊設置的是按鍵1的外部中斷配置,按如下圖所示進行設置:

d2472a44-8dfc-11f0-8c8f-92fbcf53809c.png

點擊可查看大圖

第二個外部中斷模塊設置的是按鍵2的外部中斷配置,按如下圖所示進行設置:

d2a2e5fa-8dfc-11f0-8c8f-92fbcf53809c.png

點擊可查看大圖

外部中斷模塊(r_icu)的屬性介紹如下表所示。

表4 External IRQ屬性介紹:

開發板按鍵引腳分配和中斷號

d2fd6a7a-8dfc-11f0-8c8f-92fbcf53809c.png

點擊可查看大圖

配置完成之后可以按下快捷鍵“Ctrl+S”保存,最后點右上角的“GenerateProjectContent”按鈕,讓軟件自動生成配置代碼即可。

15.3.2.3

按鍵外部中斷初始化函數

列表2 代碼清單16_1:

外部中斷初始化函數:文件結構

左右滑動查看完整內容

/* KEY 外部中斷初始化函數 */
voidKey_IRQ_Init(void)
{
fsp_err_t err =FSP_SUCCESS;
/* Open ICU module */
err =R_ICU_ExternalIrqOpen(&g_external_irq9_ctrl, &g_external_irq9_cfg);
err =R_ICU_ExternalIrqOpen(&g_external_irq10_ctrl, &g_external_irq10_
→cfg);
/* 允許中斷 */
err =R_ICU_ExternalIrqEnable(&g_external_irq9_ctrl);
err =R_ICU_ExternalIrqEnable(&g_external_irq10_ctrl);
}

R_ICU_ExternalIrqOpen()用于打開一個外部中斷模塊實例。

2.R_ICU_ExternalIrqEnable()用于使能外部中斷,使能后即可觸發產生外部中斷。

15.3.2.4

使能FPU

因為之前的FSP配置里面Callback屬性配置的都是同一個中斷回調函數,因此,我們僅需實現一個中斷回調函數即可。當然,中斷回調函數也可設置為不同的兩個函數,由用戶定義。

兩個按鍵共用key_external_irq_callback中斷回調函數,并通過p_args->channel參數來判斷是哪個中斷通道產生了中斷從而判斷是哪個按鍵按下,該函數如下:

列表3 代碼清單16_2:按鍵中斷回調函數

左右滑動查看完整內容

/* 按鍵按下標志 */
volatilebool key1_sw2_press =false;
volatileboolkey2_sw3_press =false;
/*按鍵中斷回調函數*/
voidkey_external_irq_callback(external_irq_callback_args_t *p_args)
{
/*判斷中斷通道*/
if(9== p_args->channel)
{
key1_sw2_press=true;//按鍵KEY1_SW2按下
}
elseif(10== p_args->channel)
{
key2_sw3_press=true;//按鍵KEY2_SW3按下
}
}

15.3.2.5

hal_entry入口函數

hal_entry入口函數如下所示:

列表4 代碼清單16_3:hal_entry入口函數

自由滑動查看完整內容

/*用戶頭文件包含*/
#include"led/bsp_led.h"
#include"key/bsp_key_irq.h"
externvolatileboolkey1_sw2_press;
externvolatileboolkey2_sw3_press;
voidhal_entry(void)
{
/*TODO:add your own code here */
LED_Init();// LED 初始化
Key_IRQ_Init();// KEY 外部中斷初始化
while(1)
{
/* 判斷按鍵 KEY1_SW2 是否被按下 */
if(key1_sw2_press)
{
key1_sw2_press =false;//標志位清零
LED2_TOGGLE;
}
//LED2 翻轉
/* 判斷按鍵 KEY2_SW3 是否被按下 */
if(key2_sw3_press)
{
key2_sw3_press =false;//標志位清零
LED3_TOGGLE;
}
//LED3 翻轉
// LED1 閃爍指示程序正在運行
LED1_TOGGLE;
R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS);//延時 1 秒
// 按鍵被按下觸發中斷后,在主循環中 LED2 或 LED3 最長會被推遲 1 秒翻轉
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}

15.3.3

下載驗證

把編譯好的程序下載到開發板并復位,按下用戶按鍵1和按鍵2即可分別控制LED2和LED3燈的亮滅。同時LED1燈在每秒鐘翻轉一次狀態。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    243

    文章

    24595

    瀏覽量

    690823
  • 軟件設計
    +關注

    關注

    3

    文章

    65

    瀏覽量

    18292
  • 開發環境
    +關注

    關注

    1

    文章

    270

    瀏覽量

    17637
  • 外部中斷
    +關注

    關注

    1

    文章

    135

    瀏覽量

    16603

原文標題:實驗:按鍵外部中斷的軟件設計——瑞薩RA系列FSP庫開發實戰指南(40)

文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32F407 外部中斷配置步驟

    介紹STM32F407外部中斷配置步驟,以按鍵為例,實現外部中斷配置,使用按鍵觸發
    的頭像 發表于 07-06 14:31 ?3550次閱讀
    STM32F407 <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>配置步驟

    按鍵外部中斷學習

    …文章目錄STM32 CubeMX學習:6. 按鍵外部中斷0 前言1 基礎知識1.1 按鍵原理圖1.2 按鍵
    發表于 08-16 08:34

    按鍵觸發外部中斷

    STM32F4XX 學習日志:按鍵觸發外部中斷前言任務目標設計過程硬件軟件GPIO口的配置前言使用反客科技STM32F407VET6 M1的核心板,板載8M主時鐘晶振(HSE),32.
    發表于 08-17 08:00

    介紹幾種按鍵硬件、軟件設計方面的技巧

    在單片機系統里,按鍵是常見的輸入設備,在本文江介紹幾種按鍵硬件、軟件設計方面的技巧。一般的在按鍵的設計上,一般有四種方案:一是GPIO口直接檢測單個
    發表于 11-10 07:17

    怎么實現STM32F40x外部中斷軟件設計

    什么是STM32F40x外部中斷?怎么實現STM32F40x外部中斷軟件設計
    發表于 11-17 06:32

    STM32按鍵掃描/按鍵中斷/外部中斷資料下載

    電子發燒友網為你提供STM32按鍵掃描/按鍵中斷/外部中斷資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料
    發表于 04-13 08:45 ?23次下載
    STM32<b class='flag-5'>按鍵</b>掃描/<b class='flag-5'>按鍵</b><b class='flag-5'>中斷</b>/<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>資料下載

    瑞薩單片機之外部中斷實現按鍵的長按與短按(二)

    瑞薩單片機通過外部中斷實現按鍵的長按與短按
    發表于 11-22 14:21 ?21次下載
    瑞薩單片機之<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實現<b class='flag-5'>按鍵</b>的長按與短按(二)

    STC15單片機實戰項目軟件開發第三講 - 按鍵檢測(外部中斷)

    STC15單片機實戰項目軟件開發第三講 - 按鍵檢測(外部中斷)
    發表于 11-22 15:06 ?17次下載
    STC15單片機實戰項目<b class='flag-5'>軟件</b>開發第三講 - <b class='flag-5'>按鍵</b>檢測(<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>)

    外部中斷按鍵抖動(按鍵消抖)

    當我們寫完一個外部中斷程序測試時,例如按鍵計數和按鍵點亮led燈,我們可能會遇到一次按鍵按下松開卻觸發了多次
    發表于 11-22 15:36 ?28次下載
    <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>的<b class='flag-5'>按鍵</b>抖動(<b class='flag-5'>按鍵</b>消抖)

    STM32f10x 外部中斷中斷分組

    利用外部中斷來實現按鍵控制LED燈的亮滅。實驗工具:MDK5,STM32F103ZET6開發板使用固件庫編程LED燈引腳PD13,按鍵PE0首先了解一下32的
    發表于 11-23 18:06 ?4次下載
    STM32f10x <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>及<b class='flag-5'>中斷</b>分組

    STM32F407學習記錄---外部中斷實驗

    STM32F407學習記錄---外部中斷概述STM32F4外部中斷簡介硬件設計軟件設計概述將 STM32F4 的 IO 口作為
    發表于 11-29 16:06 ?4次下載
    STM32F407學習記錄---<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實驗

    GD32外部中斷按鍵問題實現)

    平臺:GD32F350G8背景:工作的關系接觸到了gd32的一個開發板,老板的第一個需求就是利用中斷實現按鍵控制LED,并嘗試長按短按,前后搞了好幾天,到處去尋找資料,好在皇天不負有心人,全部搞定
    發表于 12-02 15:06 ?15次下載
    GD32<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>(<b class='flag-5'>按鍵</b>問題實現)

    STM32基本GPIO操作:按鍵輸入(掃描+外部中斷

    STM32基本GPIO操作:按鍵輸入(掃描+外部中斷)本文章向大家介紹STM32基本GPIO操作:按鍵輸入(掃描+外部
    發表于 12-29 19:27 ?13次下載
    STM32基本GPIO操作:<b class='flag-5'>按鍵</b>輸入(掃描+<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>)

    STM32 HAL庫 CubeMX教程(四)按鍵外部中斷

    STM32 HAL庫 CubeMX教程(四)外部中斷實驗內容NVIC(嵌套向量中斷控制器)外部中斷簡介CubeMX配置
    發表于 01-14 15:11 ?10次下載
    STM32 HAL庫 CubeMX教程(四)<b class='flag-5'>按鍵</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    STM32---外部中斷

    目錄1.外部中斷描述2.外部中斷框圖總結:經過分析框圖,可以產生軟件中斷和事件
    發表于 01-14 15:25 ?7次下載
    STM32---<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>