就是因为这人的早已出现,而 EXTI 与 NVIC之间则为 IRQ Channel

大家,行走在中途,却不知什么地方是归宿

有一个QQ好友,问了自家这么一个问题:“我每天都花了不少时间来读书QQ空间、微信公众平台的部分有价值的篇章,连续几年了,可是我的活着都尚未任何的更动,这是不是认证学习无用论呀?”

STM32的“中断”机制很复杂,看了PM(Cortex-m4)和RM,对它只掌握了一个大约。首先,与“中断”相关的术语就有
exception, interrupt, event
几个。Cortex-m4核中蕴藏一个NVIC控制器,用于拍卖 exception。而 interrupt
是属于 exception 之一种,另外 exception 类型包括 SysTick等。interrupt
又叫作IRQ。

冬夜的路灯,焕发着昏黄的光,夜色下的雾朦胧了大家的眼眸

自身过来说:“这是你的上学方法无用,而不是读书不行。“

STM32之中、Cortex-m4核之外的“中断”,即为
interrupt/IRQ。STM32透过 IRQ Channel 向 NVIC 请求处理 IRQ,而 NVIC
处理包括 IRQ 在内的各类 exception,例如:优先级…等等。对于 IRQ,NVIC
将调用其“中断处理程序” ISR。

一路上,稀疏人星,斑驳的是旁边的树影

著名的管住大师德鲁克说过,没有人工你承担,除了您协调,而你唯一的本金就是文化。

稍许
STM32 外围接口直接通过 IRQ Channel 与 NVIC 接口,而 GPIO
外部中断则要透过另一个控制器–EXTI–与NVIC接口。GPIO与 EXTI
之间的接口称为 EXTI line;而 EXTI 与 NVIC之间则为 IRQ Channel。GPIO
pin与EXTI line之间是n:1的关联,而EXTI line与 IRQ
Channel之间也是n:1的关系。基本上,PXn 对应 EXTI line n,这里X=A,
B, … H,n=0, 1, 2 … 15。例如,PX2(PA2, PB2 …)都对应于 EXTI
line 2。

您在另一方,可好?你能够,我要么会回想你?而自己不知,你是否在想自己

在此间自己还需要补充一句就是,你唯一的力量就是行使知识成立价值的能力。

EXTI
line与 IRQ Channel之间的对应关系则有些复杂,16个 EXTI line 占用7个
IRQ:

好不容易明白,何以琛的不愿将就,就是因为这人的已经出现

对此我的这些QQ好友来说。我把她看QQ空间和微信公众平台的日子,称为娱乐时间,而非学习时间。

  • EXTI
    line 0 – 4 分别对应一个IRQ,由此,共有5个 IRQ
  • EXTI
    line 5 – 9 共用一个IRQ
  • EXTI
    line 10 – 15 共用一个IRQ

也算是精晓,爱上一个人不容易,忘记一个人更难

意思就是,他在QQ空间上玩耍了几年的流年,那么人生毫无变化是健康的。不过,他在这段时日里面娱乐了祥和,让投机减轻了压力、心旷神怡了、快乐了,这是玩玩时间的实质。

除此以外,EXTI
line 上除了补助 interrupt 之外,还襄助 event。event
被触发之后,并不传递给 NVIC 去处理(像 IRQ
这样),而是发送一个脉冲给电源管理模块,似乎是用来落实唤醒效用的。

也终于领会,“终于等到您”这句话,并不是像写的那么简单

她也许因为在自己空间里面看到某些文化,感觉不错,然后给同事如故朋友说:“哇塞,我知道有一个叫类别学习法的事物。哇塞,你们看书为什么这么慢,用心想导图+高效阅读的方法就可以了。”

GPIO、EXTI
与 NVIC 之间的关联,用下图简单表示:

咱俩都太仓促,没有人乐于为了协调的心境而滞留

共事们,尤其是异性同事投来羡慕的视力,称誉的说:“哇,你真厉害呀,给本人签个名吧。”

图片 1

咱俩都太勤奋,以至于恋爱,婚姻俨然成为任务,程序

接下来他自己沉浸在被人家膜拜的气氛中,自己YY了一晃,自我娱乐罢了。这什么的读书,才算是学习时间吧?

 

社会变得飞速,快到它早已变更,而我辈还没缓过神

看了重重书,插手了成千上万栽培,看了N年的QQ空间,你学到或领会了很多新的学识,这几个文化对于你来说,只是音讯,而不是知识。

所以,对于编程而言,需要对GPIO、EXTI、NVIC
3个模块分别开展配备和操作。所幸,Cube HAL 以及 CubeMX
工具大大地降落了支付的复杂度。

二三十的年纪,不该不努力,因为这是黄金时段。四五十的时候不肯吐弃,因为这是收获之时。六十的时候不愿离去,因为已经形成惯性,不忍失去陪伴自己这么久,自己毕生追逐的成套

而只有当您最先思考,将这多少个知识形成了和谐的理念,并参预实施之后,对于你的思想深度和生存爆发了家喻户晓的变通,这才算是真正的求学,而只有如此的岁月利用,才好不容易学习时间。

Nucleo
开发板上有一个用户按钮B1和一个用户LED LD2,可以用它们来贯彻一个简短的
GPIO 外部中断 Demo。Nucleo 原理图体现,B1 举办了 RC
de-bouncing,因而可以看作外部中断源。未经 de-bouncing
的按钮,是不应该接触中断的。B1接在 PC13
口,已经筹划了上拉电阻:

当一切渐近尾声,我们才发现,原来俺们过得已经不是大家最初要的生存了。而那时,大家曾经垂老暮已,青春不再。

当然,要是你的靶子,就单纯是在办事之余娱乐一下,希望感到舒服和欢悦,那么时间的采纳是值得的。

 

只愿 不忘初心

万一你是期望因而学习这么些文化,改变自己,让投机人生更美满和愉悦,这您将要好好考虑,如何有效的施用时间,真正的求学是消耗时间未来,不仅仅是大脑里面输入了知识,还必须要有出口的收获。

图片 2

上次,有一个对象持续关注了自我的QQ空间一年多,有五遍,她来找我问:“汤先生,你写的就学方法是不是实在?”

 

自我问她:“我在这些QQ空间,理论讲得丰富多了,实践的点子也讲得丰硕多了,你不需要问我,你找一篇讲措施的日志试试效果,你就知晓呀。”

 

过了一周,她过来找我说:“我后悔了,从前只是看您的日记,平昔没思考过要实施。上次和你交换完事后,我将您QQ空间日志提到的主意都举办了一回,仅仅是这段时日的拿到,就这些大。”

运用CubeMX,将B1口格局设置为
GPIO_EXIT13。可见,PC13 使用了 EXTI line
13。其它,由于使用了上拉电阻,拔取暂停为下降沿触发:

实际,像他这一来的,占了90%左右。只是看了,懂了,知道了。

图片 3

本人一个QQ好友,暂称为:A。他关切了几十个QQ空间,关注了成千上万个微信公众平台。我问她:“你珍视这样多,你一天都能看完?”

图片 4 

她说:“嗯。是的。我上下班坐公交车,中午用餐,蹲马桶的时候就看。”我说:“看了这么多,有什么收获没有?”

 

她说:“嗯。以前什么都不懂,现在自己懂了成千上万方面的学识。”

如此这般,GPIO和
EXTI 就配置好了。别忘了还索要配备 NVIC。这里只需要简单地启用它对应的
IRQ即可,另外保持默认:

再有此外一个QQ好友,暂称为:B。他的法子不雷同,他关注了20个左右的微信公众平台和20个左右的QQ空间,可是中间全体都是同一个密密麻麻的,同一个主题内容的。

图片 5

自身问他:“你是咋样学习的?”

 

她说:“我的就学功用太差了,从先天常看书和到位培训,但是高速就忘记了,没什么效果。所以我前日只关注高效学习的始末,我的目标是控制高效学习的章程后,我再去上学其他的,效果就快了,好了。”

简单易行分析一下
CubeMX 生成的代码。首先,中断向量表定义在启动代码 startup_stm32f303xe.s
中,在这些文件中可以观望所有 exception 处理程序(函数名),包括 EXTI
ISR:

这三种形式覆盖了现在大部分人在碎片化时间的读书方法。

g_pfnVectors:
    .word   _estack
    .word   Reset_Handler
    .word   NMI_Handler
    ...
    .word   SysTick_Handler
    ...
    .word   EXTI0_IRQHandler
    .word   EXTI1_IRQHandler
    .word   EXTI2_TSC_IRQHandler
    .word   EXTI3_IRQHandler
    .word   EXTI4_IRQHandler
    ...
    .word   EXTI9_5_IRQHandler
    ....
    .word   EXTI15_10_IRQHandler
    ....

A的就学格局,我叫作:肆意阅读式

  

深感那一个很正确,这个也很有用,所以都关注了。在消息化时代,你都能学习完呢?这跟事业不聚焦一样的,学习也是索要聚焦的。

其中,EXTI15_10_IRQHandler
就是按钮B1的间歇处理程序。这些函数的落实在 stm32f3xx_it.c
中,它实在只有调用了 Cube 库的 HAL_GPIO_EXTI_IRQHandler()函数,将端口号作为参数传递进去:

这就跟你在音信网站上,左看看,右看看,左刷刷,右刷刷,时间就浪费完了。

/**
* @brief This function handles EXTI line[15:10] interrupts.
*/
void EXTI15_10_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI15_10_IRQn 0 */

  /* USER CODE END EXTI15_10_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
  /* USER CODE BEGIN EXTI15_10_IRQn 1 */

  /* USER CODE END EXTI15_10_IRQn 1 */
}

B的求学情势,我称之为:对象学习式

  

他对友好的就学,有明晰的靶子和系统的设计。他知道怎么而学,知道学习想拿到什么的战果。往往这种学习效果,是最好的。

检查 HAL_GPIO_EXTI_IRQHandler()函数的落实,发现它坐落 GPIO HAL
模块内,它又调用了一个回调函数 HAL_GPIO_EXTI_Callback(),而该回调函数的默认实现表明为
__weak 属性,我们得以覆盖:

近年来这么些社会,已经是运动互联网时代了,大家不可制止的,开头使用零散时间来举行碎片化学习。朋友圈,微信公众平台,QQ空间,天涯论坛已经占据了绝大多数人的碎片化学习渠道。

void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
  /* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
    HAL_GPIO_EXTI_Callback(GPIO_Pin);
  }
}

__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
   ...

唯独,这一个渠道的学问,都是属于碎片化的知识点,紧缺系统性和连续性,任何一篇著作都只是作者的私房经验和见仁见智角度的构思格局。

  

假设你看的学识仍然领域方面是未知,这您的频率和机能并不是专程出彩的。

因此,我们在 stm32f3xx_it.c
增加 HAL_GPIO_EXTI_Callback() 的实现,每当B1按下,开/关LD2:

这就像上三次,我一张合计导图剖析了秦刚100多篇日记,一张合计导图剖析了东方老师20多篇日记的精华一样。我能完成,大部分做不到的由来是怎么?

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
    HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
}

因为自己有稳固的系列学习法作为基础,这只是以此。

  

那么些,我在自媒体领域也有深的造诣和阅历。假诺自己只是一个恰好学思维导图的人,或者对自媒体一窍不通的人,我能有那一个成果吧?肯定不可能。

另外,在gpio.c
中的 MX_GPIO_Init() 函数中,看到了 NVIC 的部署,但并没有观望与 EXTI
有关的布局。其实,EXTI 配置已由 HAL_GPIO_Init()函数处理,不劳大家辛勤。也就是说,对 GPIO 的外部中断的处理,要使用 GPIO
和 NVIC 2个Cube 模块:

这就是说,问题来了,假设你很想学习某个圈子的学问,你应有怎样充份利用碎片化的水道(QQ空间,微信公众平台,天涯论坛等)来拓展完美的求学?

  ...
  HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
  ...
  /* EXTI interrupt init*/
  HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
  HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);

有钱的主意:直接去插足培训,有专家给你一对一指点。这是读书最快的艺术。

  

在这种情景下,你再去读书这多少个世界的学问,看那多少个QQ空间、微信公众平台或果壳网的时候,你就能在更高的角度和文化上,对碎片化知识的上学,整理和收取。

 

与此同时,你可以本着这多少个文化,通过创作、解说的模式分享出来,将别人的学识内化为祥和的文化。同时,不断的考虑和实践,最终将知识爆发为价值和财富。

没钱的主意:找这上头大量的图书,资料全套都汇聚回复,然后一个人渐渐啃,逐渐消化。境遇不懂的题目时,就去百度掌握上拓展问答,或者找这上头的大方尝试提问(可能没人理你),然后渐渐积攒经验。

要学会书本、碎片知识展开搭配式的读书,这样你就从系统化,碎片化的上学模式中,收获更多了。对啊,实践才是王道。

你时刻看碎片法的学问,每便见到人家提供的法虎时,就去实施一下。

多少个月后,你就会意识你的生活会发生根本性的变通。不信?你尝试吧。  

我是汤帅,欢迎交流便捷学习。

QQ号:1137168268 个人微信号:1137168268

相关文章