硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7595|回复: 0
收起左侧

[例程下载] STM32F4实验四:外部中断

[复制链接]

20

主题

55

回帖

20

积分

初级会员

积分
20
发表于 2012-12-22 20:36:29 | 显示全部楼层 |阅读模式
说明:
硬件:采用armfly的STM32F407VGT6核心板
软件:MDK 4.23
(1)由于需要调试,所以为每个例程都添加上串口和嘀嗒定时器。
(2)先不做高级实验,等把F4的基本外设都搞熟了,再弄。
(3)后面的高级例程打算用UCOS-III + emWin 5.16来做。
程序说明:
本程序将按键一用外部中断的方式实现。
(1)设置一个全局的中断标志
         uint8_t g_ucKey1IRQ;  /*
                                               用于按键一的外部中断标志
                                               0:表示没有外部中断
                                               1:表示产生按键中断
                                               */
        如果产生中断,在中断程序中设置此中断标志
       void EXTI15_10_IRQHandler(void)
      {
                if(EXTI_GetITStatus(EXTI_Line13) != RESET)
             {   
                     EXTI->IMR&=~(1<<13);                 /* 关闭中断       */
                     EXTI_ClearITPendingBit(EXTI_Line13); /* 清除中断标志位 */
                     g_ucKey1IRQ = 1;
               }            
      }
(2)产生按键中断以后,将此标志设置成1,然后启动此按键的检测程序
void bsp_KeyPro(void)
{
    uint8_t i;
   
/* 此程序用于中断按键的检测 */
    if(g_ucKey1IRQ == 1)
    {
        bsp_DetectButton(0);   
    }
    /* 用查询的方式检测 */
    for (i = 1; i < BUTTON_COUNT; i++)
    {
        bsp_DetectButton(i);
    }
}

(3)按键松手以后的处理。
/* 打开按键1中断 */
if(g_ucKey1IRQ == 1)
{
        g_ucKey1IRQ = 0;
        EXTI->IMR|= (1 << 13);   
}
程序下载:
实验四:外部中断.zip (11.96 MB, 下载次数: 978)

天天向上
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 18:31 , Processed in 0.245954 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表