历史上的今天
今天是:2025年07月21日(星期一)
2018年07月21日 | STM32通过按键中断点亮led灯
2018-07-21 来源:eefocus
首先是led头文件,其中调用的一些库是原子的我只是借鉴一下 侵删
#ifndef __LED_H
#define __LED_H
#include "sys.h"
#define LED PCout(13) // PA8
void LED1_Init(void);//³õʼ»¯
#endif
led的c文件
#include "led.h"
//初始化PB5和PE5为输出口.并使能这两个口的时钟
//LED IO初始化
void LED1_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能PC端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //LED0-->PA.8 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA.8
GPIO_Init(GPIOC, &GPIO_InitStructure); //推挽输出 ,IO口速度为50MHz
}
之后是中断的头文件
#ifndef _EXTI_H_
#define _EXTI_H_
#include "sys.h"
void EXTI_KEY_Init(void);//³õʼ»¯
#endif
中断的c文件
#include "EXTI.h"
void EXTI_KEY_Init(void)
{
//配置PB11为下降沿触发
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
//配置管脚时钟和复用时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
//配置GPIO口为上拉输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//配置GPIO为外部中断模式
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource11);
//配置EXTI中断触发模式
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);
//配置EXTI中断优先等级
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_Init(&NVIC_InitStructure);
}
主函数
#include "sys.h"
#include "EXTI.h"
#include "led.h"
#include "KEY.h"
#include "delay.h"
u8 t=0;
int main(void)
{
delay_init();
NVIC_Configuration();
LED1_Init();
EXTI_KEY_Init();
while(1)
{
LED = 1;
}
}
效果图
下一篇:外部中断实现LED灯的控制亮灭
史海拾趣
|
现在很多工厂的工程师画了PCB后都需要打板,但是如果打板的厂家忙,是必要10-20天才能打个样板,这样太费事,特别是在北方,但如果自己买台刻板机,又好像有点贵,难啊… 查看全部问答> |
|
访问服务器,用telnet方式,在vi编辑器下能进行中文输入,但是用串口连接访问时在vi编辑器下,输入中文时变成一个一个的点:如:“........”串口输出中文没有问题,请教能否让串口输入中文?… 查看全部问答> |
|
cmos摄像头选择CCIR601和CCIR656两种模式有啥区别 如题:知道一种是串行一种是并行数据传输 除此之外,其他的信号。如HREF+VSYNC+PCLK和数据线有啥区别 因为 ...… 查看全部问答> |




