91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

STM32CubeMX的外部中斷的使用

撞上電子 ? 2023-11-26 08:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

啥是中斷?中斷是指計(jì)算機(jī)運(yùn)行過程中,出現(xiàn)某些意外情況需主機(jī)干預(yù)時(shí),機(jī)器能自動(dòng)停止正在運(yùn)行的程序并轉(zhuǎn)入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續(xù)運(yùn)行。

舉個(gè)例子:

類比一下

在實(shí)際的代碼中,HAL庫(kù)的中斷處理較為復(fù)雜:startup_stm32f103xb.s通過匯編注冊(cè)了中斷處理函數(shù)EXTI1_IRQHandler(),在stm32f1xx_it.c中,EXTI_IRQHandler()引用了HAL庫(kù)的處理函數(shù)HAL_GPIO_EXTI_IRQHandler(),其功能主要為判斷具體的中斷原因,并調(diào)用對(duì)應(yīng)的中斷回調(diào)函數(shù):HAL_GPIO_EXTI_Callback()。用戶可以自己重聲明中斷回調(diào)函數(shù)(HAL_GPIO_EXTI_Callback()),在其中寫入自己的用戶邏輯,不出意外的話,你這時(shí)候可能會(huì)有點(diǎn)懵。上圖!

中斷處理函數(shù)寫在EXTI_IRQHandler()或HAL_GPIO_EXTI_Callback()皆可,不過HAL_GPIO_EXTI_Callback()需要重新聲明,比如:

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if(HAL_GetTick()-t>30) { if(GPIO_Pin == GPIO_PIN_1) { duty_cycle=duty_cycle+100; __HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_4,duty_cycle); } if(GPIO_Pin == GPIO_PIN_2) { duty_cycle=duty_cycle-100; __HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_4,duty_cycle); } } t=HAL_GetTick();}

對(duì)于代碼的意思不必理會(huì),只需知道這些是自己按需求寫的,下面開始連接硬件:

以下是實(shí)操工程:

1,配置引腳

2,使能外部中斷

3,點(diǎn)擊右上角GENERATE CODE生成代碼



Hal_GPIO_TogglePin()這個(gè)函數(shù)可以反轉(zhuǎn)引腳電平,以控制小燈亮滅,多加的那幾行代碼用來做一個(gè)簡(jiǎn)單的消抖,然后編譯,下載。如果沒出問題的話,每按一次按鍵,燈都會(huì)改變一次亮滅狀態(tài),上面用的是xxxit.c中的Handler函數(shù),下面試一試Callback函數(shù),注釋掉剛才加的代碼,在main.c中添加如下代碼:


編譯,下載,運(yùn)行,效果應(yīng)該跟剛才一樣,下面試一下TIM。


搞完后,小燈應(yīng)該每秒閃爍5次。注意:

中斷里不要使用延時(shí)函數(shù)Hal_Delay()

TIM中斷要手動(dòng)開啟(Hal_TIM_Base_Start_IT())

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

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373479
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3846

    瀏覽量

    85249
  • 機(jī)器
    +關(guān)注

    關(guān)注

    0

    文章

    798

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    請(qǐng)問RT-Thread與stm32cubemx聯(lián)合開發(fā)的原理是什么?

    在使用RT-Thread與stm32cubemx聯(lián)合開發(fā)的原理是什么,cubemx在其中主要起到了哪些功能呢?
    發(fā)表于 10-11 15:49

    意法半導(dǎo)體:STM32CubeMX將不再集成到STM32CubeIDE中

    從2025年11月發(fā)布的版本開始,我們將僅以 獨(dú)立 版本的形式提供 STM32CubeIDE 和 STM32CubeMXSTM32CubeMX將不再集成到STM32CubeIDE
    的頭像 發(fā)表于 09-01 17:18 ?3424次閱讀

    使用STM32CubeMX的時(shí)候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?

    在使用STM32CubeMX的時(shí)候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?在基于開發(fā)板進(jìn)行工程創(chuàng)建的時(shí)候會(huì)把板載資源直接初始化,后面想要用不同的功能配置,如何把初始配置去掉?
    發(fā)表于 07-22 07:13

    對(duì)于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時(shí)間有什么說明嗎?

    對(duì)于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時(shí)間有什么說明嗎?
    發(fā)表于 07-21 07:07

    STM32CubeMX配置STM32G070RBT6TR時(shí)為什么無(wú)法使能PVD中斷?

    STM32CubeMX 配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷
    發(fā)表于 06-18 07:59

    STM32CubeMX配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷怎么辦?

    STM32CubeMX 配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷
    發(fā)表于 06-16 06:32

    請(qǐng)問使用CubeMX選擇芯片生成項(xiàng)目時(shí)如何選擇外部晶振?

    我從網(wǎng)上購(gòu)入了STM32F103C8T6的核心板,板上有外部晶振。但我使用STM32CubeMX生成項(xiàng)目時(shí),卻無(wú)法選擇外部晶振(如下圖)。請(qǐng)問要在哪里設(shè)置才能選擇
    發(fā)表于 04-22 09:17

    STM32開發(fā)入門進(jìn)階必備!《STM32嵌入式系統(tǒng)開發(fā)—基于STM32CubeMX和HAL庫(kù)》新書發(fā)布!

    近日,由華清遠(yuǎn)見教育科技集團(tuán)精心編撰的教育部高等學(xué)校電子信息類專業(yè)教學(xué)指導(dǎo)委員會(huì)規(guī)劃教材、普通高等教育電子信息類專業(yè)系列教材——《STM32嵌入式系統(tǒng)開發(fā)—基于STM32CubeMX和HAL庫(kù)》重磅
    的頭像 發(fā)表于 04-03 14:54 ?1937次閱讀
    <b class='flag-5'>STM32</b>開發(fā)入門進(jìn)階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)開發(fā)—基于<b class='flag-5'>STM32CubeMX</b>和HAL庫(kù)》新書發(fā)布!

    STM32cubeMx打開報(bào)錯(cuò)更新器正在下載,怎么解決?

    cubeMx打開報(bào)錯(cuò)A \'STiM32Cube Updater (or another\'STM32CubeMX) sotware is downloading to the Repository
    發(fā)表于 03-14 07:03

    請(qǐng)問STM32cubeMX中文版怎么設(shè)置?

    STM32cubeMX中文版怎么設(shè)置?
    發(fā)表于 03-13 06:12

    STM32CubeMX生成代碼就會(huì)覆蓋CMakeLists.txt文件,怎么解決?

    請(qǐng)教一下用STM32CubeMX生成代碼后,我自己加了一個(gè)頭文件和源文件,這些自己加的文件不是要配置到CMakeLists.txt編譯么,但下載在用STM32CubeMX生成成代碼,就會(huì)覆蓋CMakeLists.txt文件,這種一般怎么解決
    發(fā)表于 03-12 08:03

    STM32CubeMX無(wú)法打開.ioc文件怎么解決?

    我的STM32CubeMX不能打開別人的工程文件,雙擊打開.ioc文件后會(huì)全白,只剩左上角有個(gè)home,什么也點(diǎn)不了,但是我自己可以創(chuàng)建工程,也可以打開我自己創(chuàng)建的工程。請(qǐng)問我該如何解決
    發(fā)表于 03-12 07:39

    myST賬號(hào)無(wú)法注冊(cè)導(dǎo)致stm32cubemx無(wú)法下載hal庫(kù)的固件包,為什么?

    myST賬號(hào)無(wú)法注冊(cè)導(dǎo)致stm32cubemx無(wú)法下載hal庫(kù)的固件包,myST賬號(hào)注冊(cè)卡在最后的郵箱驗(yàn)證環(huán)節(jié),一直卡著無(wú)法注冊(cè)通過 很急很急!以前stm32cubemx都不需要登錄myST賬號(hào)就能下載固件包了,為什么現(xiàn)在搞個(gè)這種抽象東西出來?還不能注冊(cè)賬號(hào)
    發(fā)表于 03-11 06:17

    STM32CubeMX生成的FreeRTOS源碼格式如何優(yōu)化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優(yōu)化,空格都是以箭頭的方式呈現(xiàn),觀感很差。FreeRTOS官方下載的源碼則不存在這個(gè)問題,說明是STM32CubeMX生成源碼的過程出現(xiàn)的格式問題,希望ST官方能對(duì)此做下優(yōu)化!
    發(fā)表于 03-10 08:04

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解決?

    使用STM32CubeMX生成CMake工程之后,對(duì)STM32xxxx_FLASH.ld進(jìn)行了修改。然后再次使用STM32CubeMX對(duì)工程進(jìn)行修改的時(shí)候,STM32xxxx_FLAS
    發(fā)表于 03-10 06:52