一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

單片機STM32開發(fā)自學(xué)第三天

 山峰云繞 2023-11-13 發(fā)布于貴州

https://m.toutiao.com/is/iRSWjuR9/ 



STM32開發(fā)——外部中斷

一、外部中斷

中斷的作用和意義

1、實時控制:在確定時間內(nèi)對相對應(yīng)的事件作出響應(yīng)

2、故障處理:檢測到故障,需要第一時間處理

3、數(shù)據(jù)傳輸:不確定數(shù)據(jù)何時會來,處理串口數(shù)據(jù)接收

中斷的意義:高效處理緊急程序,不會一直占用CPU資源

中斷分為外部中斷和內(nèi)部中斷,外部中斷是依賴GPIO接收外設(shè)的中斷請求。STM32 中的中斷優(yōu)先級由NVIC中的“中斷優(yōu)先級(8Bit 位寬)”將優(yōu)先級分為:搶占優(yōu)先級、響應(yīng)優(yōu)先級。當(dāng)兩個或者多個中斷的搶占式優(yōu)先級和響應(yīng)優(yōu)先級相同時,那么就遵循自然優(yōu)先級,看中斷向量表的中斷排序,數(shù)值越小,優(yōu)先級越高。

NVIC 寄存器

NVIC 相關(guān)的寄存器定義了可以在 core_cm3.h 文件中,其定義如下:

typedef struct{ __IOM uint32_t ISER[8U]; /* 中斷使能寄存器 */uint32_t RESERVED0[24U]; __IOM uint32_t ICER[8U]; /* 中斷清除使能寄存器 */uint32_t RSERVED1[24U]; __IOM uint32_t ISPR[8U]; /* 中斷使能掛起寄存器 */uint32_t RESERVED2[24U]; __IOM uint32_t ICPR[8U]; /* 中斷解掛寄存器 */uint32_t RESERVED3[24U]; __IOM uint32_t IABR[8U]; /* 中斷有效位寄存器 */uint32_t RESERVED4[56U]; __IOM uint8_t IP[240U]; /* 中斷優(yōu)先級寄存器(8Bit 位寬) */uint32_t RESERVED5[644U]; __OM uint32_t STIR; /* 軟件觸發(fā)中斷寄存器 */} NVIC_Type;

NVIC 部分常用相關(guān)函數(shù)

1.
HAL_NVIC_SetPriorityGrouping 函數(shù)

ST 公司把 core_cm3.h 文件的 NVIC 相關(guān)函數(shù)封裝到 stm32f1xx_hal_cortex.c 文件中,
HAL_NVIC_SetPriorityGrouping 是設(shè)置
中斷優(yōu)先級分組函數(shù)。其聲明如下:

void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup);

函數(shù)形參:是中斷優(yōu)先級分組號,可以選擇范圍:NVIC_PRIORITYGROUP_0 到NVIC_PRIORITYGROUP_4(共 5 組)

2. HAL_NVIC_SetPriority 函數(shù)

HAL_NVIC_SetPriority 是設(shè)置中斷優(yōu)先級函數(shù)。其聲明如下:

void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority,uint32_t SubPriority);

函數(shù)形參:

形參 1 是中斷號,可以選擇范圍:IRQn_Type 定義的枚舉類型,定義在 stm32f103xe.h。

形參 2 是搶占優(yōu)先級,可以選擇范圍:0 到 15。

形參 3 是響應(yīng)優(yōu)先級,可以選擇范圍:0 到 15。

3. HAL_NVIC_EnableIRQ 函數(shù)

HAL_NVIC_EnableIRQ 是中斷使能函數(shù)。其聲明如下:

void HAL_NVIC_EnableIRQ(IRQn_Type IRQn);

函數(shù)形參:形參 IRQn 是中斷號,可以選擇范圍:IRQn_Type 定義的枚舉類型,定義在 stm32f103xe.h。

4. HAL_NVIC_DisableIRQ 函數(shù)

HAL_NVIC_DisableIRQ 是中斷除能函數(shù)。其聲明如下:

void HAL_NVIC_disableIRQ(IRQn_Type IRQn);

函數(shù)形參:形參 IRQn 是中斷號,可以選擇范圍:IRQn_Type 定義的枚舉類型,定義在 stm32f103xe.h。

5. HAL_NVIC_SystemReset 函數(shù)

HAL_NVIC_SystemReset 是系統(tǒng)復(fù)位函數(shù)。其聲明如下:

void HAL_NVIC_SystemReset(void);

二、EXTI

EXTI 即是外部中斷和事件控制器,它是由 20 個產(chǎn)生事件/中斷請求的邊沿檢測器組成。每一條輸入線都可以獨立地配置輸入類型(脈沖或掛起)和對應(yīng)的觸發(fā)事件(上升沿或下降沿或者雙邊沿都觸發(fā))。每個輸入線都可以獨立地被屏蔽。掛起寄存器保持著狀態(tài)線的中斷請求。

①,邊沿檢測 ②,軟件觸發(fā) ③,中斷屏蔽/清除 ④,事件屏蔽

中斷和事件的理解:

中斷:要進入NVIC,有相應(yīng)的中斷服務(wù)函數(shù),需要CPU處理

事件:不進入NVIC,僅用于內(nèi)部硬件自動控制的,如:TIM、DMA、ADC

三、AFIO簡介(F1)

AFIO即復(fù)用功能IO,主要用于重映射和外部中斷映射配置

1、調(diào)試IO配置:AFIO_MAPR[26:24],配置JTAG/SWD的開關(guān)狀態(tài)

2、重映射配置:AFIO_MAPR,部分外設(shè)IO重映射配置

3、外部中斷配置:AFIO_EXTICR1~4,配置EXTI中斷線0~15對應(yīng)具體哪個IO口

特別注意:配置AFIO寄存器之前要使能AFIO時鐘,方法如下:

__HAL_RCC_AFIO_CLK_ENABLE(); 對應(yīng)RCC_APB2ENR寄存器 位0

四、EXTI 與 IO對應(yīng)關(guān)系

AFIO_EXTICR1的 EXTI0[3:0]位控制(F1)

五、如何使用中斷

STM32 EXTI的配置步驟(外部中斷)

1,使能GPIO時鐘:使能GPIO時鐘

2,設(shè)置GPIO輸入模式:上/下拉/浮空輸入

3,使能AFIO/SYSCFG時鐘:設(shè)置AFIO/SYSCFG時鐘開啟寄存器

4,設(shè)置EXTI和IO對應(yīng)關(guān)系:選擇PA~PK到底哪組IO對應(yīng)EXTI輸入線,AFIO_EXTICR/ SYSCFG_EXTICR

5,設(shè)置EXTI屏蔽,上/下沿:設(shè)置EXTI對應(yīng)通道的屏蔽和上升沿/下降沿觸發(fā),IMR、 RTSR/FTSR

步驟2 - 5使用 HAL_GPIO_Init 一步到位

6,設(shè)置NVIC:分3步,見前面內(nèi)容,即:設(shè)置優(yōu)先級分組、設(shè)置優(yōu)先級、使能中斷

7,設(shè)計中斷服務(wù)函數(shù):編寫對應(yīng)中斷的中斷服務(wù)函數(shù)!清中斷標(biāo)志!

STM32 EXTI的HAL庫設(shè)置步驟(外部中斷)

1,使能GPIO時鐘——使用:
__HAL_RCC_GPIOx_CLK_ENABLE

2,GPIO/AFIO(SYSCFG)/EXTI——使用:HAL_GPIO_Init,一步到位

3,設(shè)置中斷分組——使用:
HAL_NVIC_SetPriorityGrouping(
此函數(shù)僅需設(shè)置一次

4,設(shè)置中斷優(yōu)先級——使用: HAL_NVIC_SetPriority

5,使能中斷——使用: HAL_NVIC_EnableIRQ

6,設(shè)計中斷服務(wù)函數(shù)——編寫:EXTIx_IRQHandler,中斷服務(wù)函數(shù),清中斷標(biāo)志

STM32僅有:EXTI0~4、EXTI9_5、EXTI15_10,7個外部中斷服務(wù)函數(shù)

六、通用外設(shè)驅(qū)動模型(四步法)

通用外設(shè)驅(qū)動模型

七、HAL庫中斷回調(diào)處理機制

中斷回調(diào)函數(shù)大概原理

以上是對第三天學(xué)習(xí)的了內(nèi)容做了大概的總結(jié),由于我個人選擇的是STM32F1系列的開發(fā)進行學(xué)習(xí),所總結(jié)的大部分內(nèi)容僅限于F1系列使用。由于篇幅受限,很多地方有縮略,歡迎小伙伴們在評論區(qū)相互交流。今天的內(nèi)容到此結(jié)束,打工仔只能不定期更新,再見!#30天學(xué)會STM32##STM32#

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    中文字幕一区二区久久综合| 欧美又黑又粗大又硬又爽| 夫妻性生活动态图视频| 国产精品免费福利在线| 国产一区二区三区成人精品| 中文字幕欧美精品人妻一区| 不卡免费成人日韩精品| 日本特黄特色大片免费观看| 日韩特级黄片免费观看| 大香蕉大香蕉手机在线视频| 免费黄色一区二区三区| 色无极东京热男人的天堂| 日本人妻精品中文字幕不卡乱码| 香蕉网尹人综合在线观看| 亚洲一区二区精品久久av| 91人妻人澡人人爽人人精品| 久久久精品日韩欧美丰满| 午夜激情视频一区二区| 亚洲最新的黄色录像在线| 黄色国产精品一区二区三区| 午夜视频成人在线观看| 五月的丁香婷婷综合网| 国产精品美女午夜视频| 色哟哟哟在线观看视频| 亚洲欧洲成人精品香蕉网| 国产亚洲不卡一区二区| 欧美成人免费视频午夜色| 中文日韩精品视频在线| 欧美一区二区三区不卡高清视| 国产午夜精品福利免费不| 国产欧美高清精品一区| 免费在线观看欧美喷水黄片| 亚洲一区二区三区在线免费| 日韩在线精品视频观看| 91人人妻人人爽人人狠狠| 成人免费观看视频免费| 亚洲黄色在线观看免费高清 | 国产在线一区二区三区不卡| 日韩精品毛片视频免费看| 日韩人妻中文字幕精品| 亚洲中文字幕视频在线播放|