1933|4

36

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

极海APM32E103VET6测评之外部中断(EINT) [复制链接]

 

在上次建立的工程基础上,我们添加相应的外部中断代码,实现按键外部中断,控制LED灯的亮灭。以下是按键原理图,一共有三个按键,分别为复位、B1和B2,我们使用B1即连接到PA0上的按键,该按键按下时呈低电平。因此,我们在程序中需配置PA0为上拉输入,使得在不按的情况下,IO口呈高电平。根据这个工作原理,开始配置相关代码。

1、配置GPIO为上拉输入

#define KEY1_PIN                                             GPIO_PIN_0

#define KEY1_PORT                                         GPIOA

#define KEY1_PORT_CLK_ENABLE()              RCM_EnableAPB2PeriphClock( RCM_APB2_PERIPH_GPIOA );

GPIO_Config_T s_GPIO_InitStruct = { 0 };

/* ---Config the Clock of the Gpios--- */

KEY1_PORT_CLK_ENABLE();

/* ---Config the Clock of the Afio--- */

RCM_EnableAPB2PeriphClock( RCM_APB2_PERIPH_AFIO );

/* ---Config Key1 pin Parameters--- */

s_GPIO_InitStruct.pin = KEY1_PIN;

s_GPIO_InitStruct.mode = GPIO_MODE_IN_PU;//配置为上拉输入

GPIO_Config( KEY1_PORT, &s_GPIO_InitStruct );

2、配置外部中断

EINT_Config_T s_EINT_InitStruct = { 0 };

GPIO_ConfigEINTLine( GPIO_PORT_SOURCE_A, GPIO_PIN_SOURCE_0 );//配置外部中断线到PA0

s_EINT_InitStruct.line = EINT_LINE_0;

s_EINT_InitStruct.lineCmd = ENABLE;

s_EINT_InitStruct.mode = EINT_MODE_INTERRUPT;//中断模式

s_EINT_InitStruct.trigger = EINT_TRIGGER_FALLING;//下降沿触发

EINT_Config( &s_EINT_InitStruct );

NVIC_EnableIRQRequest( EINT0_IRQn, 1, 0 );//配置NVIC请求

3、编写中断服务函数

void EINT0_IRQHandler( void )

{

    if( RESET != EINT_ReadIntFlag( EINT_LINE_0 ) )

    {

        if( RESET == GPIO_ReadInputBit( KEY1_PORT, KEY1_PIN ) )

        {

            LED1_PORT->ODATA_B.ODATA8 ^= 1;

        }

        EINT_ClearIntFlag( EINT_LINE_0 );

    }

}

1_APM32E103VET6_EINT.7z

569.73 KB, 下载次数: 0

最新回复

谢谢分享,期待后续!   详情 回复 发表于 2022-9-15 23:05
点赞 关注
 
 

回复
举报

6807

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

外部中断测评完后下面测什么

点评

串口  详情 回复 发表于 2022-9-14 11:13
 
 
 

回复

36

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
Jacktang 发表于 2022-9-14 07:19 外部中断测评完后下面测什么

串口

点评

好的,期待    详情 回复 发表于 2022-9-15 07:08
 
 
 

回复

6807

帖子

0

TA的资源

五彩晶圆(高级)

4
 

好的,期待

 

 
 
 

回复

7608

帖子

18

TA的资源

五彩晶圆(高级)

5
 

谢谢分享,期待后续!

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表