chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

按鍵外部中斷的軟件設(shè)計(jì)

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

掃碼添加小助手

加入工程師交流群

15.3.2

軟件設(shè)計(jì)

15.3.2.1

新建工程

對于e2studio開發(fā)環(huán)境

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

對于Keil開發(fā)環(huán)境

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

工程新建好之后,在工程根目錄的“src”文件夾下面新建“key”文件夾,再進(jìn)入“key”文件夾里面新建源文件和頭文件:“bsp_key_irq.c”和“bsp_key_irq.h”。工程文件結(jié)構(gòu)如下。

列表1:文件結(jié)構(gòu)

左右滑動查看完整內(nèi)容

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”項(xiàng)目的FSP配置界面,接下來我們要在這個界面里配置芯片的引腳及其相應(yīng)的功能。

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

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

點(diǎn)擊可查看大圖

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

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

點(diǎn)擊可查看大圖

第一個外部中斷模塊設(shè)置的是按鍵1的外部中斷配置,按如下圖所示進(jìn)行設(shè)置:

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

點(diǎn)擊可查看大圖

第二個外部中斷模塊設(shè)置的是按鍵2的外部中斷配置,按如下圖所示進(jìn)行設(shè)置:

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

點(diǎn)擊可查看大圖

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

表4 External IRQ屬性介紹:

開發(fā)板按鍵引腳分配和中斷號

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

點(diǎn)擊可查看大圖

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

15.3.2.3

按鍵外部中斷初始化函數(shù)

列表2 代碼清單16_1:

外部中斷初始化函數(shù):文件結(jié)構(gòu)

左右滑動查看完整內(nèi)容

/* KEY 外部中斷初始化函數(shù) */
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()用于打開一個外部中斷模塊實(shí)例。

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

15.3.2.4

使能FPU

因?yàn)橹暗腇SP配置里面Callback屬性配置的都是同一個中斷回調(diào)函數(shù),因此,我們僅需實(shí)現(xiàn)一個中斷回調(diào)函數(shù)即可。當(dāng)然,中斷回調(diào)函數(shù)也可設(shè)置為不同的兩個函數(shù),由用戶定義。

兩個按鍵共用key_external_irq_callback中斷回調(diào)函數(shù),并通過p_args->channel參數(shù)來判斷是哪個中斷通道產(chǎn)生了中斷從而判斷是哪個按鍵按下,該函數(shù)如下:

列表3 代碼清單16_2:按鍵中斷回調(diào)函數(shù)

左右滑動查看完整內(nèi)容

/* 按鍵按下標(biāo)志 */
volatilebool key1_sw2_press =false;
volatileboolkey2_sw3_press =false;
/*按鍵中斷回調(diào)函數(shù)*/
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入口函數(shù)

hal_entry入口函數(shù)如下所示:

列表4 代碼清單16_3:hal_entry入口函數(shù)

自由滑動查看完整內(nèi)容

/*用戶頭文件包含*/
#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;//標(biāo)志位清零
LED2_TOGGLE;
}
//LED2 翻轉(zhuǎn)
/* 判斷按鍵 KEY2_SW3 是否被按下 */
if(key2_sw3_press)
{
key2_sw3_press =false;//標(biāo)志位清零
LED3_TOGGLE;
}
//LED3 翻轉(zhuǎn)
// LED1 閃爍指示程序正在運(yùn)行
LED1_TOGGLE;
R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS);//延時 1 秒
// 按鍵被按下觸發(fā)中斷后,在主循環(huán)中 LED2 或 LED3 最長會被推遲 1 秒翻轉(zhuǎn)
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}

15.3.3

下載驗(yàn)證

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    243

    文章

    24327

    瀏覽量

    683704
  • 軟件設(shè)計(jì)
    +關(guān)注

    關(guān)注

    3

    文章

    65

    瀏覽量

    18204
  • 開發(fā)環(huán)境
    +關(guān)注

    關(guān)注

    1

    文章

    244

    瀏覽量

    17408
  • 外部中斷
    +關(guān)注

    關(guān)注

    1

    文章

    134

    瀏覽量

    16389

原文標(biāo)題:實(shí)驗(yàn):按鍵外部中斷的軟件設(shè)計(jì)——瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南(40)

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32F407 外部中斷配置步驟

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

    按鍵外部中斷學(xué)習(xí)

    …文章目錄STM32 CubeMX學(xué)習(xí):6. 按鍵外部中斷0 前言1 基礎(chǔ)知識1.1 按鍵原理圖1.2 按鍵
    發(fā)表于 08-16 08:34

    按鍵觸發(fā)外部中斷

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

    介紹幾種按鍵硬件、軟件設(shè)計(jì)方面的技巧

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

    怎么實(shí)現(xiàn)STM32F40x外部中斷軟件設(shè)計(jì)?

    什么是STM32F40x外部中斷?怎么實(shí)現(xiàn)STM32F40x外部中斷軟件設(shè)計(jì)
    發(fā)表于 11-17 06:32

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

    電子發(fā)燒友網(wǎng)為你提供STM32按鍵掃描/按鍵中斷/外部中斷資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料
    發(fā)表于 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>資料下載

    瑞薩單片機(jī)之外部中斷實(shí)現(xiàn)按鍵的長按與短按(二)

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

    STC15單片機(jī)實(shí)戰(zhàn)項(xiàng)目軟件開發(fā)第三講 - 按鍵檢測(外部中斷)

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

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

    當(dāng)我們寫完一個外部中斷程序測試時,例如按鍵計(jì)數(shù)和按鍵點(diǎn)亮led燈,我們可能會遇到一次按鍵按下松開卻觸發(fā)了多次
    發(fā)表于 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 外部中斷中斷分組

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

    STM32F407學(xué)習(xí)記錄---外部中斷實(shí)驗(yàn)

    STM32F407學(xué)習(xí)記錄---外部中斷概述STM32F4外部中斷簡介硬件設(shè)計(jì)軟件設(shè)計(jì)概述將 STM32F4 的 IO 口作為
    發(fā)表于 11-29 16:06 ?4次下載
    STM32F407學(xué)習(xí)記錄---<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實(shí)驗(yàn)

    GD32外部中斷按鍵問題實(shí)現(xiàn))

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

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

    STM32基本GPIO操作:按鍵輸入(掃描+外部中斷)本文章向大家介紹STM32基本GPIO操作:按鍵輸入(掃描+外部
    發(fā)表于 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教程(四)外部中斷實(shí)驗(yàn)內(nèi)容NVIC(嵌套向量中斷控制器)外部中斷簡介CubeMX配置
    發(fā)表于 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.外部中斷框圖總結(jié):經(jīng)過分析框圖,可以產(chǎn)生軟件中斷和事件
    發(fā)表于 01-14 15:25 ?7次下載
    STM32---<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>