一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

CKS32F4xx系列產(chǎn)品EXTI應(yīng)用

中科芯MCU ? 來(lái)源:中科芯MCU ? 2023-05-12 15:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

EXTI 簡(jiǎn)介

EXTI(External interrupt/event controller)—外部中斷/事件控制器,管理了控制器的 23個(gè)中斷/事件線(xiàn)。每個(gè)中斷/事件線(xiàn)都對(duì)應(yīng)有一個(gè)邊沿檢測(cè)器,可以實(shí)現(xiàn)輸入信號(hào)的上升沿檢測(cè)和下降沿的檢測(cè)。EXTI可以實(shí)現(xiàn)對(duì)每個(gè)中斷/事件線(xiàn)進(jìn)行單獨(dú)配置,可以單獨(dú)配置為中斷或者事件,以及觸發(fā)事件的屬性。

EXTI 功能框圖

EXTI的功能框圖包含了 EXTI最核心內(nèi)容,EXTI可分為兩大部分功能,一個(gè)是產(chǎn)生中斷,另一個(gè)是產(chǎn)生事件。EXTI功能框圖如下:

909ddb4a-f099-11ed-90ce-dac502259ad0.png

中斷/事件線(xiàn)

EXTI有23個(gè)中斷/事件線(xiàn),每個(gè)GPIO都可以被設(shè)置為輸入線(xiàn),占用EXTI0至EXTI15,還有另外七根用于特定的外設(shè)事件。

91a3aa38-f099-11ed-90ce-dac502259ad0.png

EXTI0至EXTI15用于GPIO,通過(guò)編程控制可以實(shí)現(xiàn)任意一個(gè)GPIO作為 EXTI的輸入源。由上圖可知,EXTI0可以通過(guò)AFIO的外部中斷配置寄存器 1(AFIO_EXTICR1)的EXTI0[3:0]位選擇配置為PA0、PB0、PC0、PD0、PE0、PF0、PG0、PH0 或者PI0,其他EXTI線(xiàn)(EXTI中斷/事件線(xiàn))使用配置都是類(lèi)似的。

外設(shè)事件連接模式:

EXTI line 16 連接PVD輸出

EXTI line 17 連接RTC鬧鐘事件

EXTI line 18 連接USB OTG FS喚醒事件

EXTI line 19 連接以太網(wǎng)喚醒事件

EXTI line 20 連接USB OTG HS喚醒事件

EXTI line 21 連接RTC 篡改和時(shí)標(biāo)事件

EXTI line 22 RTC喚醒事件

EXTI 初始化結(jié)構(gòu)體

標(biāo)準(zhǔn)庫(kù)函數(shù)對(duì)每個(gè)外設(shè)都建立了一個(gè)初始化結(jié)構(gòu)體,比如 EXTI_InitTypeDef,結(jié)構(gòu)體成員用于設(shè)置外設(shè)工作參數(shù),并由外設(shè)初始化配置函數(shù),比如 EXTI_Init()調(diào)用,這些設(shè)定參數(shù)將會(huì)設(shè)置外設(shè)相應(yīng)的寄存器,達(dá)到配置外設(shè)工作環(huán)境的目的。

初始化結(jié)構(gòu)體和初始化庫(kù)函數(shù)配合使用是標(biāo)準(zhǔn)庫(kù)精髓所在,理解了初始化結(jié)構(gòu)體每個(gè)成員意義基本上就可以對(duì)該外設(shè)運(yùn)用自如了。初始化結(jié)構(gòu)體定義在 cks32f4xx_exti.h 文件中,初始化庫(kù)函數(shù)定義在 cks32f4xx_exti.c 文件中,編程時(shí)我們可以結(jié)合這兩個(gè)文件內(nèi)注釋使用。

EXTI操作流程

a)首先配置GPIO引腳模式:

RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); 
/* 配置GPIOA.0 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
/* 配置為輸入模式 */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
/* 配置速率為高速模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
/* 使能下拉模式 */
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
/* 調(diào)用初始化函數(shù) */
GPIO_Init(GPIOA, &GPIO_InitStructure);typedefstruct

b)配置EXTI line0中斷線(xiàn)連接GPIOA.0:

typedefstrucSYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, GPIO_PinSource0); t

c)配置中斷線(xiàn)為中斷模式,上升沿觸發(fā)模式并使能:

EXTI_InitTypeDefEXTI_Structure;
EXTI_StructInit(&EXTI_Structure);
/*  配置中斷線(xiàn)0 */
EXTI_Structure.EXTI_Line = EXTI_Line0;     
/* 使用中斷模式 */
EXTI_Structure.EXTI_Mode = EXTI_Mode_Interrupt;
/* 電壓低于閥值時(shí)產(chǎn)生中斷 */     
EXTI_Structure.EXTI_Trigger = EXTI_Trigger_Raising;  
/* 使能中斷線(xiàn) */
EXTI_Structure.EXTI_LineCmd = ENABLE;   
/* 初始化中斷 */
EXTI_Init(&EXTI_Structure);

d)配置中斷管理器NVIC,設(shè)置EXTI0_IRQn中斷源優(yōu)先級(jí)并初始化:

Svoid NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  /* 嵌套向量中斷控制器組選擇 */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  /* 配置EXTI0_IRQn中斷源 */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
  /* 搶斷優(yōu)先級(jí)為1 */
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  /* 子優(yōu)先級(jí)為1 */
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  /* 使能中斷 */
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  /* 初始化配置NVIC */
  NVIC_Init(&NVIC_InitStructure); 
}
  NVIC_PriorityGroupConfig(NVYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, GPIO_PinSource0);

e)當(dāng)產(chǎn)生 EXTI0中斷,在中斷程序中進(jìn)行相應(yīng)的處理:

typvoid EXTI0_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line0) != RESET)
  {        
    EXTI_ClearITPendingBit(EXTI_Line0);
/*添加用戶(hù)處理代碼*/
  }
}  edefstruct

審核編輯:湯梓紅

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

    關(guān)注

    114

    文章

    17054

    瀏覽量

    183600
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    905

    瀏覽量

    42643
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1279

    瀏覽量

    53839
  • 輸入信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    472

    瀏覽量

    12872
  • EXTI
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    3908

原文標(biāo)題:MCU微課堂 | CKS32F4xx系列產(chǎn)品EXTI應(yīng)用

文章出處:【微信號(hào):中科芯MCU,微信公眾號(hào):中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    MCU微課堂|CKS32F4xx系列產(chǎn)品時(shí)鐘配置

    作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是單片機(jī)各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)單片機(jī)的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。CKS32F4xx系列產(chǎn)品具有眾多的外設(shè),但并非所有的外設(shè)均需要系統(tǒng)時(shí)鐘的高頻率
    發(fā)表于 12-12 10:17 ?1005次閱讀

    CKS32F4xx系列產(chǎn)品NVIC中斷優(yōu)先級(jí)管理單元講解

    本課將為大家講解CKS32F4xx系列產(chǎn)品的中斷優(yōu)先級(jí)管理單元NVIC。CM4內(nèi)核共支持256個(gè)中斷,其中包含了16個(gè)內(nèi)核中斷和240個(gè)外部中斷,具有256級(jí)可編程中斷設(shè)置。但CKS32F4x
    的頭像 發(fā)表于 02-06 14:52 ?1534次閱讀

    CKS32F4xx系列產(chǎn)品串口DMA傳輸

    在上一講,我們講過(guò)CKS32F4xx系列的6個(gè)串口都支持DMA傳輸。因此本節(jié)我們對(duì)CKS32F4xx系列的DMA進(jìn)行介紹,同時(shí)利用DMA對(duì)串口數(shù)據(jù)進(jìn)行傳輸。
    的頭像 發(fā)表于 04-10 11:18 ?1358次閱讀

    CKS32F4xx系列產(chǎn)品的定時(shí)器使用-基本特征和定時(shí)操作

    這一課我們將介紹CKS32F4XX系列產(chǎn)品的定時(shí)器使用,CKS32F4XX的定時(shí)器功能十分強(qiáng)大,包含2個(gè)高級(jí)控制定時(shí)器,8個(gè)普通定時(shí)器,2個(gè)基礎(chǔ)定時(shí)器,以及兩個(gè)看門(mén)狗定時(shí)器和一個(gè)系統(tǒng)定時(shí)器,總共15個(gè)定時(shí)器之多。關(guān)于定時(shí)器部分內(nèi)
    的頭像 發(fā)表于 05-19 09:18 ?1246次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產(chǎn)品</b>的定時(shí)器使用-基本特征和定時(shí)操作

    CKS32F4xx系列RNG功能設(shè)置

    ? MCU 微課堂 CKS32F4xx 系 列RNG功能 隨機(jī)數(shù)發(fā)生器簡(jiǎn)介 ? ? CKS32F4xx系列自帶了硬件隨機(jī)數(shù)發(fā)生器(RNG),RNG處理器是一個(gè)以連續(xù)模擬噪聲為基礎(chǔ)的隨機(jī)數(shù)發(fā)生器,在
    的頭像 發(fā)表于 09-08 10:01 ?922次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>RNG功能設(shè)置

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的頭像 發(fā)表于 11-06 16:56 ?1142次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC功能

    CKS32F4xx系列ADC多通道DMA電壓采集

    CKS32F4xx系列ADC多通道DMA電壓采集
    的頭像 發(fā)表于 11-06 16:53 ?1369次閱讀

    CKS32F4xx系列低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式SLEEP模式
    的頭像 發(fā)表于 11-06 16:59 ?995次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式STOP模式

    CKS32F4xx系列低功耗模式STOP模式
    的頭像 發(fā)表于 11-06 17:08 ?888次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STOP模式

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)器脈沖計(jì)數(shù)

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)器脈沖計(jì)數(shù)
    的頭像 發(fā)表于 11-09 17:38 ?1409次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產(chǎn)品</b>Timer的基本使用方法-定時(shí)器脈沖計(jì)數(shù)

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-比較輸出
    的頭像 發(fā)表于 11-09 17:39 ?1167次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產(chǎn)品</b>Timer的基本使用方法-比較輸出

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)操作

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)操作
    的頭像 發(fā)表于 11-09 17:41 ?849次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產(chǎn)品</b>Timer的基本使用方法-定時(shí)操作

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信
    的頭像 發(fā)表于 10-24 17:12 ?1045次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產(chǎn)品</b>SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置
    的頭像 發(fā)表于 10-24 15:14 ?1110次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列產(chǎn)品</b>GPIO口配置

    CKS32F4xx系列FSMC功能簡(jiǎn)介

    本課講為大家講解CKS32F4xx系列產(chǎn)品的FSMC應(yīng)用實(shí)例,F(xiàn)SMC全稱(chēng)是Flexible Static Memory Controller,讀作靈活的靜態(tài)存儲(chǔ)控制器,顧名思義,MCU可以通過(guò)FSMC擴(kuò)展靜態(tài)內(nèi)存
    的頭像 發(fā)表于 04-14 15:06 ?1458次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC功能簡(jiǎn)介