0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32_ EXIT中断

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-04-08 11:12 次阅读

今天讲解“STM32F103 EXIT中断”,关于EXIT中断里面有很多学问,以我的工作经验来看,有几点是特别容易犯错的,我会在文章最后重点讲解。

每次讲解的不仅仅是基础,而是重点,不起眼的重点,容易被人忽视的重点。关注微信公众号“EmbeddDeveloper”还有更多精彩等着你。

每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。

今天的软件工程下载地址(360云盘):

https://yunpan.cn/cPhvyer3vIwXh访问密码 57e1

STM32F10x的资料可以在我360云盘下载:

https://yunpan.cn/crBUdUGdYKam2访问密码 ca90

工程概要说明:定义一个按键(可自己定义),每按键一次,响应中断一次,在中断函数中LED提示灯变化一次,用户可更加实际情况在中断函数做出相应操作,这里只是一个模板。

关于“STM32F103EXIT中断”我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。

一、RCC时钟配置

该函数位于在bsp.c文件下面;

使能RCC时钟:RCC_APB2Periph_GPIOC和 RCC_APB2Periph_AFIO(针对该工程主要的两项,引脚PC13和复用功能)。

二、EXIT配置

该函数位于在bsp.c文件下面;

对应外部中断(按键)的引脚,这里两处必须匹配。

三、NVIC配置

该函数位于在bsp.c文件下面;

对EXIT的中断控制器进行配置

注意:

EXTI15_10_IRQn包含EXTI10 --- EXTI15共6条外部中断线,也就是说共用一个中断入口,需要在中断里面判断是哪一个中断。

四、中断函数

该函数位于在stm32f10x_it.c文件下面;

这里需要判断是哪个中断,这里的操作根据自己实际情况条添加代码。

五、今天的重点提示

A.外部中断IO

STM32所有的IO引脚都可以配置成外部中断引脚,见手册:

B.中断入口

程序中“EXTI9_5_IRQHandler” 和 “EXTI15_10_IRQHandler”可能开始学习的人不明白,其实很简单,就是综合了几个EXIT中断,入口都在这里。

C.细心的朋友会发现我“中断函数”中有一句else{EXTI->PR = 0xFC00;}, 估计很多人都不明白。这里告诉大家,这句else其实很重要,特别是正式工作的人(我工作亲身经验),为什么重要,在与移植工程时,或许之前的工程开启了其他中断,但移植过后没有屏蔽,从而导致进入中断,而中断标志位又没有清除掉(else就是清除标志位),致使不停止中断中执行。

我们都是平凡的,但需要走好平凡的路。

软件工程下载方式:长按网站->选择复制->打开

或者复制网站在电脑上下载也可。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2274

    文章

    10929

    浏览量

    357995
  • STM32F103
    +关注

    关注

    33

    文章

    479

    浏览量

    63950
  • EXIT图
    +关注

    关注

    0

    文章

    4

    浏览量

    7031
收藏 人收藏

    评论

    相关推荐

    串口中断是内部中断还是外部中断,串口中断是怎么触发的

    串口中断通常被视为外部中断。虽然串口控制器(如USART、UART等)可能集成在微控制器或处理器的内部,但从中断的角度来看,串口中断是由处理器外部的通信事件触发的。这些事件包括数据的接
    的头像 发表于 01-29 15:03 226次阅读

    《DNESP32S3使用指南-IDF版_V1.6》第十二章 EXIT实验

    第十二章 EXIT实验 本章将介绍如何将GPIO引脚作为外部中断输入来使用。通过本章的学习,开发者将学习到GPIO作为外部中断输入的使用。本章分为如下几个小节:12.1 外部中断简介1
    发表于 12-11 09:28

    stm32 GPIO中断配置教程

    在嵌入式开发中,STM32微控制器因其高性能和丰富的外设而广受欢迎。GPIO(通用输入/输出)中断STM32微控制器中常用的功能之一,它允许开发者在特定引脚上检测到外部信号变化时快速响应。 1.
    的头像 发表于 11-19 15:53 1416次阅读

    STM32CUBEMX(11)--外部中断(EXTI)

    高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示: 配置时钟树 STM32F0的最高主频到48M,所以配置48即可: 中断口配置 开发板上的PC13为蓝色按钮,故
    发表于 09-10 15:44

    stm32怎样触发软件中断

    了解STM32中断系统 STM32微控制器具有丰富的中断系统,包括NVIC(嵌套向量中断控制器)和SYSTICK定时器。NVIC可以处理多达
    的头像 发表于 09-02 09:32 1095次阅读

    如何在STM32F439 DMA流中断中区分是哪个通道产生的中断

    STM32F439有两个DMA控制器DMA1和DMA2,每个控制器有8个流,每个流有8个通道,我做的是采用串口1DMA中断接收数据,DMA2的流2 通道4对应USART1_RX,STM32
    发表于 05-17 08:20

    如何利用STM32CubeMX生成的keil项目如何关闭全局中断

    利用STM32CubeMX生成的keil项目如何关闭全局中断中断相关的函数在哪个头文件里? 如何关闭系统滴答定时器中断
    发表于 05-16 07:52

    stm32中断优先级分组了之后还能改分组吗?

    如标题所示,stm32中断优先级分组了之后还能改分组吗? 比如我要使用外部中断EXIT2,3,我在配置的时候配置了优先级分组2组,然后配置了EX
    发表于 05-13 08:40

    STM32F105可以移植UC/OS-III吗?对于中断嵌套怎么处理?

    最近刚移植了UC/OS-III到STM32F105上面,只是单纯的点亮LED灯还有串口通信,都是正常的,若是使用外部中断,且不停的使用,让其进行嵌套之后,程序就会跑飞,觉得我哪里是移植错了,但很难
    发表于 05-06 06:48

    请问ucos-III中断保护放在中断回调函数还是中断里面?

    请教下ucos-III 中断保护放在中断回调函数还是中断里面? 1. 中断函数 void DMA2_Stream6_IRQHandler(void) { OS_ERRerr
    发表于 04-23 07:44

    STM32中断分组及外部中断的配置过程分享

    STM32中断分组   STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。
    发表于 04-08 08:05

    STM32F0内核的总中断是默认开的吗?

    STM32F0、STM32F1, 用 CubeMx生成初始化代码,只有外设的中断使能代码,没有找到总中断的使能代码,请问内核的总中断默认是开
    发表于 04-03 06:14

    STM32 USART中断与ADC DMA中断冲突造成硬件错误的原因?

    使用STM32的USART与主机设备通讯,主机设备每隔50ms会与STM32的USART通讯一次,使用ADC 的DMA功能采集数据,再通过USART把数据传输给主机设备,USART和DMA中断同时
    发表于 04-02 06:26

    CPU中断程序:从硬件看什么是中断

    CPU响应中断转去执行中断服务程序前,需要把被中断程序的现场信息保存起来,以便执行完中断服务程序后,接着从被中断程序的断点处继续往下执行。
    发表于 03-26 11:36 4250次阅读
    CPU<b class='flag-5'>中断</b>程序:从硬件看什么是<b class='flag-5'>中断</b>?

    如何使用exit()、_exit()和_Exit()来终止程序运行呢?

    在Linux系统下,你可以使用 exit()、_exit() 和 _Exit() 来终止程序运行,特别是在出现错误或执行失败的情况下。
    的头像 发表于 02-22 12:20 1024次阅读