08 - 外部中断2

本文介绍了如何在STM8G平台的C语言项目中配置外部中断INT2,仅响应下降沿中断,并提供了GPIO口初始化和中断服务程序的示例代码。
摘要由CSDN通过智能技术生成
  • 外部中断INT2只有下降沿中断

代码

  • main.c
#define _MAIN_C
#include "config.h"
#include "STC8G_H_GPIO.h"
#include "main.h"

#define D1 P03
#define D2 P02
#define D3 P01
#define D4 P00

#define KEY1 P36
#define KEY2 P37
#define K P44

/**
 * GPIO口初始化
 */
void GPIO_config(void)
{
	P0_MODE_IO_PU(GPIO_Pin_0);		// P0.0为准双向口
	P3_MODE_IO_PU(GPIO_Pin_6);		// P3.6为准双向口 
	
	
	
	P_SW2 &= 0x80;		// 将EAXFR位置1,以访问在XDATA区域的扩展SFR
	
	P3_PULL_UP_ENABLE(GPIO_Pin_6);		// 使能P3.6端口内部的4.1K上拉电阻

	P_SW2 &= 0x7F;		// 静止访问XFR	
}
/**
 * 外部中断2初始化
*/
void INT2_Init()
{
	AUXINTIF &= 0xEF;		// 将外部中断2中断请求标志位清零
	INTCLKO |= 0x10;		// 使能外部中断2中断允许位
}

void main()
{
	GPIO_config();
	INT2_Init();
	EA = 1;

	while (1)
	{
		;
	}
}

void INT2_Isr() interrupt 10
{
	D4 = ~D4;
}

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
外部中断是STM32单片机中的一种事件触发机制,它可以让外部设备向单片机发送一个中断信号,从而使单片机在正常执行的过程中立即转移到中断服务程序中执行相应的代码。中断可以用于实现实时性要求较高的功能,例如按键检测、传感器数据采集等。 在STM32单片机中配置外部中断需要经过以下几个步骤: 1. 设置中断系统的优先级分组。这是一个系统级的设置,可以通过寄存器配置来实现。该设置决定了不同中断源之间的优先级关系。 2. 配置外部中断引脚。首先需要将对应的GPIO口配置为输入模式,然后将外部中断引脚与GPIO口连接起来。具体的配置过程包括设置引脚模式、引脚速度、上下拉电阻等。 3. 配置外部中断触发方式。根据具体的需求,可以选择边沿触发或电平触发。边沿触发可以进一步分为上升沿触发、下降沿触发和双边沿触发。 4. 编写中断服务程序。中断服务程序是在中断发生时执行的代码段,用于处理中断事件。在中断服务程序中可以编写相应的逻辑,例如读取按键状态、处理传感器数据等。 5. 配置中断优先级和使能中断。通过中断控制器的设置,可以决定中断的优先级和是否允许中断。优先级高的中断会在多个中断同时发生时优先得到处理。 6. 清除中断挂起位。在中断服务程序中,需要手动清除中断挂起位,表示该中断已经被处理。 总的来说,配置外部中断需要进行引脚配置、触发方式设置、中断服务程序编写和中断优先级设置等步骤。这样,当外部中断事件发生时,单片机会立即转移到中断服务程序中执行相应的代码,从而实现相应的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [STM32单片机--外部中断详解](https://blog.csdn.net/WYFDMW/article/details/107847097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [【STM32】HAL库-睡眠模式-外部中断唤醒demo](https://download.csdn.net/download/qq_45607873/85319880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值