国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

STM32中斷使用筆記

發(fā)布者:RadiantDusk最新更新時間:2024-10-25 來源: cnblogs關(guān)鍵字:STM32  中斷  使用筆記 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

1.GPIO 的正確設(shè)置

 

 GPIO_InitTypeDef GPIO_InitStructure;

  /* Enable GPIOD clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

 

/* Configure PD.03, PC.04, as input floating */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ;
    
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
 
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource3);

 

2.設(shè)置中斷類型,注冊申請中斷

 

EXTI_InitTypeDef EXTI_InitStructure;

 

 
  // Configure EXTI Line9 to generate an interrupt on falling edge
  EXTI_InitStructure.EXTI_Line = EXTI_Line3;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

  GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource4);


  // Configure EXTI Line9 to generate an interrupt on falling edge
  EXTI_InitStructure.EXTI_Line = EXTI_Line4;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

 

3.在NVIC_Configuration 中Configures the NVIC and Vector Table base address.


  /* Configure the Priority Group to 2 bits */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

  /* enabling interrupt */
  NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);


  /* Enable the EXTI3 Interrupt on PD.3 */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

    /* Enable the EXTI4 Interrupt on PD.4 */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

 

4.在stm32f0x_it.c 中寫入 中斷處理函數(shù)

 

/*******************************************************************************
* Function Name  : EXTI3_IRQHandler
* Description    : This function handles External interrupt Line 3 request.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void EXTI3_IRQHandler(void)
{
 if(EXTI_GetITStatus(EXTI_Line3) != RESET)
  {
   // Led_RW_ON();
    GPIO_SetBits(GPIOC, GPIO_Pin_4| GPIO_Pin_5 );
   
   
    /* Clear the EXTI line 9 pending bit */
    EXTI_ClearITPendingBit(EXTI_Line3);
  }
}

/*******************************************************************************
* Function Name  : EXTI4_IRQHandler
* Description    : This function handles External interrupt Line 4 request.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void EXTI4_IRQHandler(void)
{
 if(EXTI_GetITStatus(EXTI_Line4) != RESET)
  {
    //Led_RW_OFF();
    GPIO_ResetBits(GPIOC, GPIO_Pin_4 | GPIO_Pin_5);
    /* Clear the EXTI line 9 pending bit */
    EXTI_ClearITPendingBit(EXTI_Line4);
  }
}


關(guān)鍵字:STM32  中斷  使用筆記 引用地址:STM32中斷使用筆記

上一篇:關(guān)于STM32 ADC時采用DMA的一點(diǎn)疑問
下一篇:STM32學(xué)習(xí)筆記之 DS18B20 SEARCH ROM

推薦閱讀最新更新時間:2025-07-01 15:40

STM32開發(fā)筆記72: 使用命名空間解決類名沖突問題
單片機(jī)型號:STM32L053R8T6 在程序設(shè)計中,使用了兩個類,這兩個類都有引腳定義并同名,程序如下: #ifndef E32_400T20S_H_ #define E32_400T20S_H_ #include io.h #include mini_uart.h #ifdef __cplusplus extern C { class CM0:public CIO_Output { public: CM0(void); }; class CM1:public CIO_Output { public: CM1(void); }; class CE32_400t20s:public CMiniUA
[單片機(jī)]
STM32開發(fā)筆記12: STM32F0引腳使用注意事項
單片機(jī)型號:STM32F030R8 本日志介紹STM32F0引腳使用的注意事項: 1、 PC13、PC14和PC15引腳通過電源開關(guān)(power switch)直接供給,由于開關(guān)僅能提供3mA的電流,所以這些引腳當(dāng)做輸出模式使用時,時受到限制的:當(dāng)驅(qū)動30pF電容時,速度不能超過2MHz;不能當(dāng)作電流源使用,例如不能直接驅(qū)動Led發(fā)光。 2、對于RTC組件,第1次上電后,PC13、PC14和PC15用作GPIO,可以通過寄存器設(shè)置改變其功能,這些功能不會因?yàn)橄到y(tǒng)復(fù)位而復(fù)位。 3、PC6-PC8,PA8-PA15,PC10-PC12,PD0-PD2由VDDIO2供給電源。 4、復(fù)位后,SWDIO引腳
[單片機(jī)]
零基礎(chǔ)入門stm32選擇最多的stm32f103中斷學(xué)習(xí)總結(jié)
  一、NVIC 介紹   NVIC 英文全稱是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中斷控制器,它屬于 M3 內(nèi)核的一個外設(shè),控制著芯片的中斷相關(guān)功能。由于 ARM 給 NVIC 預(yù)留了非常多的功能,但對于使用 M3 內(nèi)核設(shè)計芯片的公司可能就不需要這么多功能,于是就需要在 NVIC 上裁剪。ST 公司的 STM32F103 芯片內(nèi)部中斷數(shù)量就是 NVIC 裁剪后的結(jié)果。上面說到 NVIC 控制著芯片的中斷相關(guān)功能,那么肯定有很多對應(yīng)的寄存器,在固件庫 core_cm3.h 文件內(nèi)定義了一個 NVIC 結(jié)構(gòu)體,里面定義了相關(guān)寄存器,   如下:   1 typedef
[單片機(jī)]
STM32 HAL庫 串口DMA發(fā)送完成中斷
近期使用STM32驅(qū)動MAX3485進(jìn)行485通信,發(fā)現(xiàn)STM32F103C8并不自帶硬件485首發(fā)功能,需要軟件上控制IO高低來驅(qū)動MAX3485進(jìn)行485接收、485發(fā)送。 根據(jù)MAX3485手冊可得,進(jìn)行485發(fā)送時給相應(yīng)引腳高電平。其余時間為低電平進(jìn)行485接收。因此需要找到串口DMA發(fā)送完成的回調(diào)函數(shù),在發(fā)送完成后將引腳拉低。 在stm32f1xx_hal_uart.c中 /** @defgroup UART_Exported_Functions_Group2 IO operation functions * @brief UART Transmit and Receive functions * @verb
[單片機(jī)]
Stm32定時器中斷使LED燈閃爍
知識點(diǎn): Stm32共有11個定時器: 1.兩個高級定時器:TIM1、TIM8-------------------------APB2 2.四個通用定時器:TIM2~TIM5-------------------------APB1 3.兩個基本定時器:TIM6、TIM7-------------------------APB1 4.兩個看門狗 5.一個系統(tǒng)嘀嗒定時器(SysTick) 主程序main.c: /* *說明: *PA0:KEY1;PA1:KEY2; *PA2:LED1;PA3:LED2; *PA9:USART1_TX;PA10:USART1_RX */ #inclu
[單片機(jī)]
stm32 外部中斷知識介紹
中斷分類 STM32的EXTI控制器支持19 個外部中斷/ 事件請求。每個中斷設(shè)有狀態(tài)位,每個中斷/ 事件都有獨(dú)立的觸發(fā)和屏蔽設(shè)置。STM32的19個外部中斷對應(yīng)著19路中斷線,分別是EXTI_Line0-EXTI_Line18: 線0~15:對應(yīng)外部 IO口的輸入中斷。線16:連接到 PVD 輸出。線17:連接到 RTC 鬧鐘事件。線18:連接到 USB 喚醒事件。 觸發(fā)方式 :STM32 的外部中斷是通過邊沿來觸發(fā)的,不支持電平觸發(fā)。 外部中斷分組: STM32 的每一個GPIO都能配
[單片機(jī)]
<font color='red'>stm32</font> 外部<font color='red'>中斷</font>知識介紹
STM32中斷與事件---中斷與事件的區(qū)別
這張圖是一條外部中斷線或外部事件線的示意圖,圖中信號線上劃有一條斜線,旁邊標(biāo)志19字樣的注釋,表示這樣的線路共有19套.圖中的藍(lán)色虛線箭頭,標(biāo)出了外部中斷信號的傳輸路徑,首先外部信號從編號1的芯片管腳進(jìn)入,經(jīng)過編號2的邊沿檢測電路,通過編號3的或門進(jìn)入中斷掛起請求寄存器,最后經(jīng)過編號4的與門輸出到NVIC中斷檢測電路,這個邊沿檢測電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個寄存器控制需要哪一個邊沿產(chǎn)生中斷,因?yàn)檫x擇上升沿或下降沿是分別受2個平行的寄存器控制,所以用戶可以同時選擇上升沿或下降沿,而如果只有一個寄存器控制,那么只能選擇一個邊沿了. 按下來是編號3的或門,這個或門的另一個輸入是軟件中斷/事件寄存器,從這
[單片機(jī)]
<font color='red'>STM32</font>之<font color='red'>中斷</font>與事件---<font color='red'>中斷</font>與事件的區(qū)別
ESP32學(xué)習(xí)筆記(22)——ADC接口使用
一、概述 ESP32 集成了 2 個 12 位逐次逼近模數(shù)轉(zhuǎn)換器 (SARADC),支持 18 個測量通道(模擬使能引腳)。 支持以下通道: ADC1: 8通道:GPIO32 - GPIO39 ADC2: 10個通道:GPIO0、GPIO2、GPIO4、GPIO12-GPIO15、GOIO25-GPIO27 ESP-IDF 編程指南——ADC 1.1 ADC限制 Wi-Fi 驅(qū)動程序使用了 ADC2。因此,應(yīng)用程序只能在未啟動 Wi-Fi 驅(qū)動程序時使用 ADC2。 某些 ADC2 引腳用作捆扎引腳(GPIO 0,2,15),因此無法自由使用。 ESP32 DevKitC : 由于外部自動編程電路,無法
[單片機(jī)]
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved