娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月03日(星期一)

2020年02月03日 | STM32單片機實現外部中斷的步驟及方法

發布者:悠閑之旅 來源: elecfans關鍵字:STM32  單片機  外部中斷 手機看文章 掃描二維碼
隨時隨地手機看文章

先從最簡單的問題開始,用STM32外部中斷的方法實現PB.0按鍵控制PA.0LED燈:

先總的說下實現中斷的步驟:


1,配置NVIC寄存器(函數),設置中斷為第幾組,占先優先級和次優先級;

函數方法:

void NVIC_Configuration()

{

NVIC_InitTypeDef NVIC_InitStruct;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStruct.NVIC_IRQChannel=EXTI0_IRQn;

NVIC_InitStruct.NVIC_IRQChannelPreempTIonPriority=0;

NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;

NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStruct);

}

以上為配置優先級的一般步驟:設置優先級分組,設置中斷通道,分別設置先占優先級,次占優先級,使能等;

STM32單片機實現外部中斷的步驟及方法

2,配置EXTI寄存器及(函數),設置中斷線,中斷方式,等;

voidEXTI_Configuration()

{

EXTI_InitTypeDefEXTI_InitStructure;

EXTI_ClearITPendingBit(EXTI_Line0);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);

EXTI_InitStructure.EXTI_Line=EXTI_Line0;

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd=ENABLE;

EXTI_Init(&EXTI_InitStructure);

}

和配置NVIC一樣,這也是EXTI配置的一般步驟:清除相應中斷線標志位(這個很重要,剛開始一直沒找到這個問題),聯結端口與中斷線(也可以在GPIO初始化時配置),選擇中斷線,設置中斷模式,中斷方式,使能等;


3,寫中斷服務函數

中斷服務程序一般寫在STM32F10X_it.c文件里:

voidEXTI0_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line0)==SET)

{

EXTI_ClearITPendingBit(EXTI_Line0);

if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)==Bit_RESET)

{

GPIO_SetBits(GPIOA,GPIO_Pin_0);

}

else

{

GPIO_ResetBits(GPIOA,GPIO_Pin_0);

}

}

}


其中最重要的一點:需要注意進入服務程序后清除中斷標志位;

說幾點容易忽略的地方:

1.中斷服務程序一定要清除中斷標志位;

2.聯結相應端口與中斷線;

3.按鍵端口設置成上拉輸入;

4.在配置EXTI時清除中斷標志位;

按鍵部分的短路自己連的:

STM32單片機實現外部中斷的步驟及方法

下面是直接操作寄存器的方法:

1.GPIO初始化:這里只要注意GPIOB.0設置成上拉輸入(不光要設置GPIOB-》CRL=0X08,還要設置GPIOB-》ODR=0X01,為了和下拉區分)

voidGPIO_Config()

{

GPIOA-》CRL=0X03;

GPIOA-》ODR=0X01;

GPIOB-》CRL=0X08;

GPIOB-》ODR=0X01;

}

2. NVIC 初始化:

直接上代碼

voidNVIC_Configuration()

{

u32temp;

temp=SCB-》AIRCR;

temp&=0x0000f8ff;

temp|=0x05fa0000;

temp|=0x0700;

SCB-》AIRCR=temp;

NVIC-》ISER[0]=1《《6;

NVIC-》IP[1]=0;

}

3. EXTI初始化

和用函數方法差不多,設置幾個寄存器;有點不明白的是這里好像可以不用清除標志位;

voidEXTI_Configuration()

{

AFIO-》EXTICR[0]=0X0001;

EXTI-》IMR=0X01;

EXTI-》RTSR=0X01;

}

然后是中斷服務程序:

voidEXTI0_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line0)==SET)

{

EXTI-》PR=0X01;

if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)==Bit_RESET)

{

GPIO_SetBits(GPIOA,GPIO_Pin_0);

}

else

{

GPIO_ResetBits(GPIOA,GPIO_Pin_0);

}

}

}

下面是整個用函數代碼:

#include“stm32f10x.h”

voidGPIO_Config();

voidNVIC_Configuration();

voidEXTI_Configuration();

voidSysclkConfiguration();

intmain()

{

SysclkConfiguration();

GPIO_Config();

EXTI_Configuration();

NVIC_Configuration();

while(1);

return0;

}

voidSysclkConfiguration()

{

RCC_DeInit();

RCC_HSEConfig(RCC_HSE_ON);

if(RCC_WaitForHSEStartUp()==SUCCESS)

{

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);

RCC_PLLCmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

while(RCC_GetSYSCLKSource()!=0X08);

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);

RCC_PCLK2Config(RCC_HCLK_Div1);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);

}

}

voidGPIO_Config()

{

GPIO_InitTypeDefGPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;

GPIO

關鍵字:STM32  單片機  外部中斷 引用地址:STM32單片機實現外部中斷的步驟及方法

上一篇:如何使用STM32單片機設置PWM輸出
下一篇:STM32定時器所支持的三種計數模式及計數過程

推薦閱讀

去年,華碩曾承諾,ZenFone 3將在2018年下半年之前推送Android 8.0的OTA升級,現在看來,華碩方面將要提前完成自己許下的諾言。華碩ZenFone 4早在上個月就獲得了Android 8.0的更新。現在,華碩ZenFone 4的前輩——ZenFone 3也終于開始陸陸續續的向用戶推送Android 8.0。根據華碩官方博客的說法,此次Android 8.0的更新包還在推送中,全部完成需要...
來自CR的最新消息,佳能近日在日本公布了一項新的傳感器專利。據專利描述文件顯示,這是一款采用背照式結構的CMOS傳感器,并采用佳能標志性的DPAF技術。目前,在索尼的推廣之下,背照式CMOS已成為無反相機和智能手機最常使用的傳感器類型之一。希望佳能在傳感器方面的技術升級能夠彌補其和索尼的差距。
三星電子將以33.8億美元向ASML采購20臺EUV光刻機機臺,平均每臺1.7億美金。用于先進制程晶圓代工和新一代DRAM生產。聯想近日武漢長江存儲陷疫區,存儲產品漲價等消息。三星下面動作值得關注。先進制程成為晶圓代工廠商相互競爭的關鍵領域,臺積電去年就以極紫外光(EUV)光刻技術生產7納米制程,讓臺積電連續兩季創下同期新高紀錄,全球獨家供應EUV光刻設備...
前言本文主要介紹HAL庫中Stm32F429的GPIO用法。主要參考資料:STM32F439xx HAL USER ManualSTM32F429數據手冊關于GPIO寄存器相關知識,可以參閱stm32F4xx中文參考手冊,里面對于硬件底層以及寄存器有詳細的介紹,本文不再詳細展開。在使用HAL庫的時候,即使不了解底層硬件和寄存器知識,同樣可以完成項目的開發。此處,只需要了解HAL庫驅動函數的使用方...

史海拾趣

問答坊 | AI 解惑

電子技術基礎(模擬部分)教程

電子技術基礎(模擬部分)教程…

查看全部問答∨

請問 __attribute__ 用在這里是什么意思啊?

如題 int main() __attribute__ ((C, spontaneous)) {            platform_bootstrap(); } 是TinyOS中的nesC代碼。                 …

查看全部問答∨

華清遠見怎樣啊

華清遠見的嵌入式怎樣啊,有誰想報五月份的啊,據說是人多可以優惠,有意者請加我的qq 1484035421。…

查看全部問答∨

用tornado時 build沒問題,但download時報錯

程序就是想打印BIOS中的時間:年 原程序如下: #include #include #include #include void biostime() {     struct tm ahora;     int cYear;     sysOutByte(0x70,0x09);     ...…

查看全部問答∨

我遇到一個關于max197的問題,希望大俠們幫幫忙!!!

我用一個高精度的穩壓電源輸出一個電壓信號經過一個AD706輸出給max197的19腳(CH3),經過A/D轉換后在液晶上顯示的總是比輸入的少3mv,不知道是為什么。比如說我電壓源給一個500mv的電壓,在197的19腳上量到也是500mv,但是輸出后經過單片機的P0口 ...…

查看全部問答∨

AD6與PADS基本功能比較

一、 原理圖部分 1、 庫 ⑴ DxDesigner 的原理圖庫與PCB的庫是相互獨立的,而且每個原理圖符號庫都是一個文件,很難實現統一管理;AD6可以使用集成庫來統一管理,不僅是原理圖符號庫與PCB封裝庫,還能把混合電路仿真庫、信號完整性分析模型庫以 ...…

查看全部問答∨

2010年全球電子工程師薪資對比 中國最低

 美國EETimes雜志剛剛發布了2010年全球電子工程師收入調查結果。數據表明,中國的電子工程師收入最低,僅相當于北美同行的16%,然而他們的付出卻是全球最高的。報告稱,工程師得不到休息是全球性問題,尤其是對于中國的工程師而言。中國最近超 ...…

查看全部問答∨

德州儀器CCSv4應用簡介

Code Composer Studio v4 (CCS v4) 是用于 TI DSP、微處理器和應用處理器的集成開發環境。Code Composer Studio 包含一整套用于開發和調試嵌入式應用的工具。它包含適用于每個 TI 器件系列的編譯器、源碼編輯器、項目構建環境、調試器、描述器、仿 ...…

查看全部問答∨

基于MSP430F149單片機的炮兵氣象儀設計

針對目前采用的簡易氣象綜合觀測儀,存在著實時性差、精度不夠、作業時間長以及不能直接計算射擊條件修正量和地面風修正量等諸多問題,本文提出基于MSP430F149單片機設計一種炮兵氣象儀,以滿足炮兵分隊射擊時的簡易氣象條件和火箭炮地面風修正的 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 康定县| 鸡泽县| 江川县| 东至县| 宣汉县| 铜鼓县| 芦山县| 孙吴县| 余江县| 和硕县| 鄂伦春自治旗| 体育| 中超| 孝义市| 原阳县| 榆社县| 阿巴嘎旗| 许昌县| 凌海市| 嘉义县| 饶阳县| 宜君县| 安达市| 息烽县| 宁都县| 潜山县| 濮阳市| 庆安县| 左贡县| 津市市| 巫山县| 化德县| 万年县| 厦门市| 迁西县| 城固县| 辉县市| 公安县| 皮山县| 吉木乃县| 驻马店市|