完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
中断可以简单地分为外部中断和定时器中断
按键外部中断是外部中断中的一种,它的步骤是 配置按键的GPIO 配置中断线 配置通道 第一步配置按键的GPIO就是非常基础的操作。先定义一个初始化用结构体,然后使能你要使用的IO口的组号(即ABCD…)对应的时钟,然后给结构体赋值以后塞入GPIO_Init函数就可以了。 static void Key_GPIO_Config() { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); } 第二步配置中断线有几个要注意的问题。首先,使用哪一条中断线?例如是PB6,就必须使用EXTI6也就是中断线6,使用了以后PA6,PC6这些就无法再配置中断了。因为相同标号的GPIO口用的是同一条中断线,也就是只能独占。如果重复设置那么前者就会被覆盖。其次,要选择中断模式,可以选择的中断模式有上升沿进入中断、下降沿进入中断、上升下降沿都进入中断、高电平进入中断和低电平进入中断。 3.配置内嵌向量中断控制器NVIC 第一步,配置哪一条通道?0到4单独自己使用一个通道,而5到9用一个通道,10到15用一个通道。所以例如PB3就应该使用3号通道,PB8使用5到9公用的通道。通道连接的是中断服务函数,所以5到9也就共用一个中断服务函数了,这一般不是我们想要的效果,我们自然想要5到9能单独实现一个功能,所以我们在5~9中要另外判断一下是来自哪个IO口的信号,用几个if语句为不同的IO口实现不同的功能。第二步,配置通道的抢占优先级和响应优先级(使用一般使用分组2)。抢占优先级数值低的优先级越高,一个抢占优先级高的中断会打断优先级比较低的中断或是主函数,任何中断都可以打断主函数。响应优先级(又称次优先级)的意思是说,当两个抢占优先级相同的中断同时出现的时候,那么先执行响应优先级高的那一个,但他们彼此并不会发生互相打断,因为抢占优先级是一样的。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1758 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1053 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1931浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
721浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
563浏览 3评论
589浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
548浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 22:48 , Processed in 0.811257 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号