当前位置:首页 > 单片机 > 单片机
[导读]前言:目前开发一个测距仪数据汇总显示仪表,从17年2月开始学习硬件,本家是软件,1个月画原理图,半个月画PCB板,中间花了2个月时间用JAVA开发中级版蓝牙APP,板子焊好后开始学习STM32各个功能,点亮LED灯,花了半个

前言:目前开发一个测距仪数据汇总显示仪表,从17年2月开始学习硬件,本家是软件,1个月画原理图,半个月画PCB板,中间花了2个月时间用JAVA开发中级版蓝牙APP,板子焊好后开始学习STM32各个功能,点亮LED灯,花了半个月显示LCD彩屏,模拟SPI,USART通讯,按键,这次是中断NVIC。

说明:我写的不是为了教大家学会中断,我是从http://www.stmcu.org/module/forum/thread-603652-1-1.html例子中学会的,大家可以去那里学,以下只是我把我的DEMO贴出来,防忘,本人菜鸟,只会实现不会理解,有什么错误也可以指出。实现两个按钮,按一个蜂鸣器一直响,按另一个关闭

正文:

---------------------------------------------RCC时钟省略---------------------------------------------

---------------------------------------------GPIO配置---------------------------------------------

//两个按键,用的PB4和PB8,50Mhz,下拉输入,在.h文件里,不拿出来了

GPIO_InitTypeDef PortDef;

//KEY_OFF PB8

PortDef.GPIO_Pin=KEY_OFF_GPIO_PIN;

PortDef.GPIO_Speed=KEY_OFF_GPIO_SPEED;

PortDef.GPIO_Mode=KEY_OFF_GPIO_MODE;

GPIO_Init(KEY_OFF_GPIO_PORT,&PortDef);

//KEY_LEFT PB4

PortDef.GPIO_Pin=KEY_LEFT_GPIO_PIN;

PortDef.GPIO_Speed=KEY_LEFT_GPIO_SPEED;

PortDef.GPIO_Mode=KEY_LEFT_GPIO_MODE;

GPIO_Init(KEY_LEFT_GPIO_PORT,&PortDef);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource4);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8);

KEY_LEFT_H;//先拉高按键

KEY_OFF_H;

---------------------------------------------NVIC配置---------------------------------------------

//中断2,通道4和8,8是5到9共用,具体不懂

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn; //td4

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; //td8

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //qz1

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //xy1

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

---------------------------------------------EXTI配置---------------------------------------------

EXTI_InitTypeDef EXTI_InitStructure;

EXTI_ClearITPendingBit(EXTI_Line4);

EXTI_ClearITPendingBit(EXTI_Line8);

EXTI_InitStructure.EXTI_Line = EXTI_Line4 | EXTI_Line8 ;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

----------------------------------------EXTI4_IRQHandler配置----------------------------------------

//让2个按键按了具体做什么

void EXTI4_IRQHandler(void)

{

TIM_Cmd(TIM2,ENABLE);//PWM蜂鸣器开

EXTI_ClearITPendingBit(EXTI_Line4);//清空中断标志位,防止持续进入中断

}

void EXTI9_5_IRQHandler(void)

{

TIM_Cmd(TIM2,DISABLE); //PWM蜂鸣器关

EXTI_ClearITPendingBit(EXTI_Line8);//清空中断标志位,防止持续进入中断


---------------------------------------main函数---------------------------------------------

以上所有的初始化

while(1);



结束语:

1.两个按键方法EXTI4_IRQHandler,压根没调用,也会执行,很神奇

2.别人都说要把按键方法放在stm32f10x_it.c里头,发现不放也没事,省的还要加很多的.h

3.这是GPIO的中断,就是说GPIO和中断配好之后,两者关联一下就ok了

4.据说还有别的中断,没用过

5.据说PA1只能用1通道,PB1也是用1通道

6.据说中断1到4独立,5到9共用一个什么函数

本人小白,刚接触stm32,不喜欢看文档,结束语只是一些自己没用心证实的猜想


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

电磁铁是一种利用电流产生磁场的装置,具有快速响应、易于控制等特点,在工业自动化、电子设备、科学实验等领域有着广泛的应用。STM32是一款功能强大的微控制器,具有高性能、低功耗、易于编程等优点,是控制电磁铁的理想选择。本文...

关键字: 电磁铁 微控制器 STM32

边缘人工智能的实现涉及到三个基本 要素:安全性,连接性、自主性,而其中自主性是AI能力的体现,也是边缘AI有别于其他传统的物联网的关键。而通过ST Edge AI套件,就可以帮助各种不同类型的开发者实现覆盖全硬件平台的全...

关键字: 边缘人工智能 AI STM32

今天,小编将在这篇文章中为大家带来STM32单片机最小系统的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 单片机 单片机最小系统 STM32

STM32是一款由STMicroelectronics生产的微控制器系列,具有高性能、低功耗和丰富的外设资源。其中,串口通信是一种常用的通信方式,可以实现与其他设备之间的数据传输。

关键字: STM32 串口通信 微控制器

STM32是一种广泛使用的微控制器,具有丰富的通信接口。其中,串口通信是STM32与其他设备或系统进行数据交换的重要方式之一。本文将详细介绍STM32串口通信的原理、应用及常见故障。

关键字: STM32 串口通信

由于目前缺乏相应的监测技术,地下电缆线路出现异常运行状态无法被及时发现,久而久之易演变成大故障,最终只能通过更换地下电缆进行修复,耗费大量的人力、物力。鉴于此,开发了一种基于STM32的地下电缆异常状态检测系统,利用热传...

关键字: STM32 地下电缆

交通灯控制器是用于控制交通信号灯运行的设备,它可以根据交通流量、行人需求以及其他因素,动态地调整信号灯的变化时间和绿灯时长,以保证交通的流畅和安全。

关键字: 交通信号灯 STM32

通用MCU的成功与否,产品本身PPA固然重要,但除此外很大程度上取决于开发生态。生态的繁荣可以让其中的每一位参与者受益,当然也会反哺到MCU产品本身,影响到新的产品定义和走向。

关键字: ST STM32 MCU
关闭
关闭