完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
首先贴出工程
工程上传到了我的github上了,点此进入 我用的外部中断引脚是PA9,LED引脚是PC13,芯片是stm32c8t6。 首先我的程序是借鉴官方SDK而来 怎么移植我就不说了,抄作业大家都熟。。。 接下来看我写的工程 相对于上一节改变的地方我用红圈圈出来了,关于添加头文件路径和c文件请自行百度,这个我不讲。 可以看到,主程序里面就只有三个初始化,我来一 一解读。 首先NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);这是一个中断优先级的分组(什么是中断优先级也请自行了解),stm32的中断优先级的分组方式有四种,这四种在源码里解释的很详细。 也就是说,stm32有一个八位的空间来表示优先级,且可以通过不同的分组来表示优先级的表示方式。很明显,这里有俩种优先级,抢占优先级和响应优先级,执行遵循下面的话。 1、抢占优先级不同,会涉及到中断嵌套,抢占优先级高的会优先抢占优先级低的,优先得到执行。(注意:优先级数字越小,优先级越高) 2、抢占优先级相同,不涉及到中断嵌套,响应优先级不同,响应优先级高的先响应。(例如:两个中断同时响应,这里就会先执行响应优先级高的那个中断)(注意:优先级数字越小,优先级越高) 3、抢占优先级和响应优先级都相同,则比较它们的硬件中断编号,中断编号越小,优先级越高。(硬件中断编号从中断向量表当中查看) 这是非常重要的,中断之间的嵌套效果会十分影响程序的运行,引起不必要的阻塞导致运行崩溃。 然后是外部中断有关的初始化 这实际上可分为三步 首先初始化引脚,然后初始化外部中断,最后设置外部中断优先级并且使能中断 初始化引脚需要注意 引脚设置为输入模式,且不要设置为浮空状态,上拉或者下拉输入(这个根据外部中断的触发方式来决定) 如果设置为浮空,则会有误判产生。 如果是下降沿触发,则设置上拉输入 如果是上升沿触发,则设置下拉输入 外部中断初始化需要注意 首先要使能引脚的时钟为复用时钟,然后EXTI_InitStructure.EXTI_Line代表我们的中断路线,32每个端口有15个引脚,每个不同编号的引脚代表不同的中断路线,这里我用的是PA9引脚,所以对应的是 EXTI_Line9。 中断优先级注意 标准库的优先级数字越高优先级越低,并且我用的是NVIC_PriorityGroup_0,所以PreemptionPriority这个设置没什么意义,SubPriority = 0表示响应优先级最高 NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;这句话也很重要,我们来看看中断向量表 所以大家应该理解这里为什么会设置为EXTI9_5_IRQn了。 最后就是我们的中断服务函数了 中断服务函数于中断向量表是对应的,可以理解为,中断向量表里的那些就是指向中断服务函数的 简单地做了一个led闪烁的例子。里面的消抖和清楚中断标志位我就不说了。 说一下现象和做一个说明 PC13接led,PA9作为外部中断输入,当PA9捕捉到一个上升沿的时候,led会翻转。 注意我是上升沿触发中断 然后我的中断分组为NVIC_PriorityGroup_0,这实际上是一个不当操作,它不允许中断嵌套,所以在外部中断的时候其它中断是没法嵌入的,而这个里面又有一个消抖的操作占用了5ms时间,这5ms所有其它程序都处于阻塞状态也就是没法运行,这是不理智的,中断里阻塞的时间尽量不要超过1ms。而当我允许嵌入的话,其它中断在这5ms里是可以响应的,只是会阻塞主循环而已。这个留个自己思考。。。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1369 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1363 浏览 1 评论
782 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
565 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1399 浏览 2 评论
1758浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
484浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
421浏览 3评论
414浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
389浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 06:44 , Processed in 0.720051 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号