找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2127|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

STM32調(diào)用中斷服務(wù)函數(shù),如何利用官方給的庫函數(shù)進行松手檢測?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:327671 發(fā)表于 2019-11-19 09:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
如題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:263427 發(fā)表于 2019-11-19 20:16

板凳
ID:25310 發(fā)表于 2019-11-20 09:35 | 只看該作者
就是個中斷小程序吧!
回復(fù)

使用道具 舉報

地板
ID:25310 發(fā)表于 2019-11-20 09:38 | 只看該作者
主程序:

#include "stm32f10x.h"   // 相當(dāng)于51單片機中的  #include <reg51.h>
#include "bsp_led.h"
#include "bsp_systick.h"
#include "bsp_exti.h"

void Delay( uint32_t count )
{
        for(; count!=0; count--);
}

int main(void)
{
        // 來到這里的時候,系統(tǒng)的時鐘已經(jīng)被配置成72M。
        LED_GPIO_Config();
       
        EXIT_Key_Config();
  GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN1);
        while(1)
        {
          LED_G1_TOGGLE1;
                SysTick_Delay_ms(500);
                //Delay( 6000000 );
        }
}


回復(fù)

使用道具 舉報

5#
ID:25310 發(fā)表于 2019-11-20 09:39 | 只看該作者
中斷GPIO初始化程序:

#include "bsp_exti.h"

static void EXTI_NVIC_Config(void)
{
        NVIC_InitTypeDef NVIC_InitStruct;
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
       
        NVIC_InitStruct.NVIC_IRQChannel = EXTI2_IRQn;
        NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;
        NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStruct);
}

void EXIT_Key_Config(void)
{
        GPIO_InitTypeDef  GPIO_InitStruct;
        EXTI_InitTypeDef  EXTI_InitStruct;
       
        // 配置中斷優(yōu)先級
        EXTI_NVIC_Config();
       
        // 初始化GPIO
        RCC_APB2PeriphClockCmd(KEY1_INT_GPIO_CLK, ENABLE);       
        GPIO_InitStruct.GPIO_Pin = KEY1_INT_GPIO_PIN;
        GPIO_InitStruct.GPIO_Mode =GPIO_Mode_IN_FLOATING; //GPIO_Mode_IPU;       
        GPIO_Init(KEY1_INT_GPIO_PORT, &GPIO_InitStruct);       
       
        // 初始化EXTI
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
       
        EXTI_InitStruct.EXTI_Line = KEY1_INT_GPIO_PIN;//EXTI_Line2;
        EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
        EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;
        EXTI_InitStruct.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStruct);       
}
回復(fù)

使用道具 舉報

6#
ID:25310 發(fā)表于 2019-11-20 09:41 | 只看該作者
中斷函數(shù):

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_it.h"
#include "bsp_led.h"
#include "bsp_exti.h"


void EXTI2_IRQHandler (void)
{
        if(EXTI_GetITStatus(EXTI_Line2) != RESET)
        {
                LED_G2_TOGGLE2;
        }
        EXTI_ClearITPendingBit(EXTI_Line2);
}
回復(fù)

使用道具 舉報

7#
ID:25310 發(fā)表于 2019-11-20 09:43 | 只看該作者
程序文件架構(gòu)

文件架構(gòu).jpg (235.85 KB, 下載次數(shù): 27)

文件架構(gòu).jpg
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表