📄 exti.c
字号:
#include "exti.h"
#include "led.h"
#include "key.h"
#include "delay.h"
#include "usart.h"
#include "MyUSART.h"
#include "FIFO.h"
//Mini STM32开发板
//外部中断 驱动代码
//外部中断0服务程序
void EXTI0_IRQHandler(void)
{
/*delay_ms(10);//消抖
if(KEY2==1) //按键2
{
LED0=!LED0;
LED1=!LED1;
}
EXTI->PR=1<<0; //清除LINE0上的中断标志位 */
}
//外部中断15~10服务程序
unsigned char VsyncCnt = 0;
void EXTI15_10_IRQHandler(void)
{
EXTI->PR=1<<13; //清除LINE13上的中断标志位
if(VsyncCnt < 2)
{
VsyncCnt ++;
}
if(VsyncCnt == 1)
{
FIFO_WEN_H; //场同步有效后打开FIFO写使能
}
else if(VsyncCnt == 2)
{
FIFO_WEN_L;
}
}
//外部中断初始化程序
//初始化PA0,PA13,PA15为中断输入.
void EXTIX_Init(void)
{
RCC->APB2ENR|=1<<4; //使能PORTC时钟
//RCC->APB2ENR|=1<<0; //开启辅助时钟
//AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
//AFIO->MAPR|=0X04000000; //关闭JTAG
//GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
//GPIOA->CRL|=0X00000008;
GPIOC->CRH&=0XFF0FFFFF;//PC设置成输入
GPIOC->CRH|=0X00800000;
GPIOC->ODR|=1<<13; //PC上拉
Ex_NVIC_Config(GPIO_C,13,RTIR);//上降沿触发
//MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2
MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -