[置顶] ARM开发(6) 基于STM32的矩阵键盘按键触发外部中断引起蜂鸣器鸣叫
2017-07-28 15:00
597 查看
基于STM32的矩阵键盘按键触发外部中断引起蜂鸣器鸣叫
一 矩阵键盘按键触发外部中断引起蜂鸣器鸣叫原理:
1.1 本实验实现矩阵键盘某一列按键触发外部中断实现蜂鸣器鸣叫。 1.2 实验思路:根据电路图原理,外部中断产生原理。 1.3 开发环境 : MDK5 库函数版本开发 JLINK仿真
二 实验步骤:
2.1 led.h代码:
#ifndef __EXTI_H #define __EXTI_H #include "sys.h" void EXTIX_Init(void);//外部中断初始化 #endif
2.2 led.c代码(IO配置):
#include "exti.h" #include "key.h" #include "delay.h" #include "usart.h" #include "beep.h" void EXTIX_Init(void) { EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; KEY_Init(); //按键端口初始化 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //开启AFIO时钟 GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource11);//中断线映射 EXTI_InitStructure.EXTI_Line=EXTI_Line11; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); //初始化中断线参数 NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; //使能按键外部中断通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; //抢占优先级0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; //字优先级0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道 NVIC_Init(&NVIC_InitStructure); //初始化NCIC } void EXTI15_10_IRQHandler(void) //外部中断服务程序 { delay_ms(10); if(EXTI_GetITStatus(EXTI_Line11) != RESET) { BEEP=!BEEP; } EXTI_ClearITPendingBit(EXTI_Line11); // 消除line10上的中断标志位 }
2.2 main.c代码(实现7*8矩阵键盘第5列按键触发):
#include "exti.h" #include "led.h" #include "key.h" #include "delay.h" #include "usart.h" #include "beep.h" int main(void) { delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); uart_init(115200); BEEP_Init(); KEY_Init(); EXTIX_Init(); while(1) { printf("OK\r\n"); delay_ms(1000); } }
三 接线测试:
3.1 与板子接线测试效果良好,键盘上第5列按键触发中断产生导致蜂鸣器鸣叫。
相关文章推荐
- [置顶] ARM开发(4)基于STM32的矩阵键盘按键控制TM1629A LED显示
- [置顶] ARM开发(10)基于STM32的通用定时器中断控制蜂鸣器响
- [置顶] ARM开发(3)基于STM32的矩阵键盘控制蜂鸣器
- [置顶] ARM开发(2)基于STM32的蜂鸣器
- [置顶] ARM开发(9)基于STM32的简单四则运算计算器
- [置顶] ARM开发(7)基于STM32的独立看门狗
- [置顶] ARM开发(1) 基于stm32的led跑马灯
- [置顶] ARM开发(8)基于STM32的窗口看门狗
- [置顶] ARM开发(5)基于STM32的UART串口通信实验
- STM32学习之路-按键中断测试(外部中断)
- stm32学习笔记——按键(外部中断)
- stm32 外部事件<按键>中断输入实现过程<寄存器>
- 基于ARM-contexA9按键驱动开发
- Linux设备驱动开发基础---字符设备驱动程序开发之基于中断的按键驱动
- 基于国嵌ok6410的按键0外部中断的例程
- 基于ARM-contexA9按键驱动开发
- 基于UC/COSII系统的STM32F103系列单片机外部中断按键的一种使用方法
- 基于ARM-contexA9按键驱动开发
- STM32入门学习之EXTI外部中断(STM32F030F4P6基于CooCox IDE)
- STM32按键扫描/按键中断/外部中断