簡介
本文介紹STM8L系列如何使用按鍵中斷,對PB2采用中斷下降沿的方式進入中斷。
實驗平臺
編譯軟件:IAR for STM8 1.42.2
硬件平臺:stm8l101f3p6開發(fā)板
仿真器:ST-LINK
庫函數版本:STM8L_STMTouch_Lib_V1.1.0
實驗步驟
1、工程中添加自己寫的按鍵驅動
1)寫一個驅動GUA_Key.c (存放在工程的USER文件夾中)
//******************************************************************************
//name: GUA_Key.c
//introduce: 按鍵驅動
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.02.26
//******************************************************************************
#include "stm8l10x.h"
#include "GUA_Key.h"
//******************************************************************************
//name: GUA_Key_Init
//introduce: 按鍵初始化
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.02.26
//******************************************************************************
void GUA_Key_Init(void)
{
//按鍵IO初始化
GPIO_Init(GUA_KEY_PORT, GUA_KEY_PIN, GUA_KEY_MODE);
//觸發(fā)方式
EXTI_SetPortSensitivity(GUA_KEY_EXTI_PORT, GUA_KEY_EXTI_SENSITIVITYT);
}
2)寫一個驅動頭文件GUA_Key.h(存放在工程的USER文件夾中)
//******************************************************************************
//name: GUA_Key.h
//introduce: 按鍵驅動的頭文件
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.02.26
//******************************************************************************
#ifndef _GUA_KEY_H_
#define _GUA_KEY_H_
/*********************宏定義************************/
//類型宏
#ifndef GUA_U8
typedef unsigned char GUA_U8;
#endif
#ifndef GUA_8
typedef signed char GUA_8;
#endif
#ifndef GUA_U16
typedef unsigned short GUA_U16;
#endif
#ifndef GUA_16
typedef signed short GUA_16;
#endif
#ifndef GUA_U32
typedef unsigned long GUA_U32;
#endif
#ifndef GUA_32
typedef signed long GUA_32;
#endif
#ifndef GUA_U64
typedef unsigned long long GUA_U64;
#endif
#ifndef GUA_64
typedef signed long long GUA_64;
#endif
//按鍵引腳宏
#define GUA_KEY_PORT GPIOB
#define GUA_KEY_PIN GPIO_Pin_2
#define GUA_KEY_MODE GPIO_Mode_In_PU_IT
//觸發(fā)方式
#define GUA_KEY_EXTI_PORT EXTI_Port_B
#define GUA_KEY_EXTI_SENSITIVITYT EXTI_Trigger_Falling
/*********************外部函數聲明************************/
void GUA_Key_Init(void);
#endif
3)工程中添加GUA_Key.c
4)添加驅動的路徑
$PROJ_DIR$..USER
2、添加庫的驅動
1)添加庫的驅動文件
3、寫中斷服務函數(stm8l10x_it.c中)
1)添加頭文件
#include "GUA_Key.h"
2)修改中斷服務函數
//******************************************************************************
//name: EXTI2_IRQHandler
//introduce: 外部中斷2的中斷服務函數
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2016.11.28
//******************************************************************************
INTERRUPT_HANDLER(EXTI2_IRQHandler, 10)
{
//判斷是否被拉低
if(GPIO_ReadInputDataBit(GUA_KEY_PORT, GUA_KEY_PIN) == RESET)
{
//置位功能碼
//gGUA_Function = FUNC_GUA_KEY_SHORT_EVENT;
}
//清除中斷標志位
EXTI_ClearITPendingBit(EXTI_IT_Pin2);
}
4、應用層中調用
1)添加頭文件(main.c中)
#include "GUA_Key.h"
2)初始化(main.c的main函數中)
//按鍵初始化
GUA_Key_Init();
實驗結果
設置斷點在外部中斷2的中斷服務函數中,仿真并全速運行,按下按鍵后會進入中斷。
上一篇:DS18B20時序分析詳細步驟
下一篇:STM8L之自定義長短按鍵
推薦閱讀
史海拾趣
設計資源 培訓 開發(fā)板 精華推薦
- 意法半導體緊湊型可配置車規(guī)負載驅動器具備安全引腳
- 美光宣布在美投資增至 2000 億美元,加建晶圓廠和 HBM 封裝設施
- AMD舉辦Advancing AI 2025大會:Instinct MI350系列GPU發(fā)布,35倍推理性能提升
- 特斯拉起訴前Optimus機器人工程師,指控其竊取商業(yè)機密
- Nordic Semiconductor將在MWC上海2025上展示前沿蜂窩物聯網解決方案
- SiC 市場的下一個爆點:共源共柵(cascode)結構詳解
- 香港科技大學工學院推出擬人化自動駕駛系統(tǒng)
- 現代摩比斯推出新型安全技術 防止追尾碰撞
- 研究人員開發(fā)新型機器人系統(tǒng) 利用AI賦能機器人技術
- 研究人員開發(fā)具有突破性觸覺靈敏度的機械手 可實現類人靈巧操作
- 下載Vishay最新通信解決方案 贏取超贊移動電源
- 已結束 |TI 新一代 MSP430™ 產品在低成本超聲波水表中的方案介紹及快速應用指南
- 閱讀TI工業(yè)應用方案精彩專題,開啟任意寶箱,挑戰(zhàn)答題抽好禮!
- 村田在線課堂:工業(yè)&環(huán)境、通信篇
- 有獎探索 | 和村田一起,深挖 GNSS 開發(fā)!
- 【在線研討會講義下載】TOF 技術介紹及產品應用
- 【實時抽獎】MPS AI電源解決方案合集,咨詢抽【按摩眼罩、體脂秤、電腦支架】等好禮
- 嵌入式Rust修煉營:動手寫串口燒錄工具和MCU例程,Rust達人Hunter直播帶你入門Rust
- 參賽沖擊【萬元大獎】啦|2023 DigiKey“智造萬物,快樂不停”創(chuàng)意大賽
- Microchip 有獎問答,信號增益或濾波的原始傳感器應用方案