一、实验思路
外部中断就是根据外部输入信号(可以是上升沿、下降沿或者上升-下降沿),当微处理器引脚采集到这样的信号就触发中断,执行中断中的程序。本实验通过K64的SW2按键的下降沿作为外部中断信号,只要检测到这个信号,就翻转PTB22脚电平,诗RGB灯变红或者熄灭。
二、硬件电路分析
用到的外设:
1. SW2按键

2. RGB三色灯

三、软件程序
1.工程建立
这次和上次相比有了改进,新建了一个Hardware文件夹,建立了MK_GPIO.c和MK_EXTI.c两个文件用来存放咱们编写的程序

2.程序分析
1) MK_GPIO.c- #include "gpio.h"
- /* GPIO 工作模式 */
- /*
- * @arg kGPIO_Mode_IFT :悬空输入
- * @arg kGPIO_Mode_IPD :下拉输入
- * @arg kGPIO_Mode_IPU :上拉输入
- * @arg kGPIO_Mode_OOD :开漏输出 如果不清楚这2种输出的区别请 百度..
- * @arg kGPIO_Mode_OPP :推挽输出
- */
- void GPIO_Initial()
- {
- GPIO_QuickInit(HW_GPIOB, 22, kGPIO_Mode_OPP);
- GPIO_QuickInit(HW_GPIOB, 21, kGPIO_Mode_OPP);
- GPIO_QuickInit(HW_GPIOE, 26, kGPIO_Mode_OPP);
-
- GPIO_QuickInit(HW_GPIOC, 6, kGPIO_Mode_IPU);//按键PTC6
-
- GPIO_WriteBit(HW_GPIOB, 22, 1);//RED
- GPIO_WriteBit(HW_GPIOB, 21, 1);//BLUE
- GPIO_WriteBit(HW_GPIOE, 26, 1);//GREEN
- }
这里把PTC6设成了上拉输入
GPIO_QuickInit(HW_GPIOC, 6, kGPIO_Mode_IPU);//按键PTC6
其他的和之前的一样。
|