5081|0

55

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【F7-2015】02.GPIO中断的使用 [复制链接]

本帖最后由 为半导而生 于 2015-11-9 11:18 编辑

一、实验目的

学习使用STM32F7GPIO,为血氧测试驱动提供支持。

二、开发工具

STM32CUBEMX

KEIL V5

三、开发步骤
1.STM32F7的时钟初始化(本小组按照nemo1991方式进行系统初始化)

STM32的时钟系统相对复杂,可以使用多种时钟源,同时可以选择锁相环、倍频分频系数等,同时不同的外设总线可以设置相应的时钟频率。

本次实验中,我们使用内部时钟作为时钟源。

首先,打开STM32CUBEMX(下文简称CUBE),选择新建工程。之后选择MCU的型号,DIS板子上的芯片型号是STM32F746NGH,点击OK。此时即可完成工程的基本创建。

之后选择clock configuration进行时钟配置。几个要点:使用HSIRC内部16M时钟作为时钟源;使用PLL,设置分频倍频系数,使得PLL输出为200M(事实上F7的最高时钟频率官方设置为216M);之后合理设置分频系数给HCLK和后续外设及总线使用。

至此,完成时钟初始化。
2.选取PA15作为中断源

对于血氧探头的支持,需要一个中断引脚进行AFE4400采样完成的信号接收。对于AFE4400datasheet中表明,其寄存器值在上升沿出现时表示可以被读取,因此这一中断应该被设置为上升沿中断。这里,首先将PA15作为中断功能引脚。
3.设置PA15中断方式:上升沿触发中

configuration页面中,选择GPIOPA15进行设置,具体设置如图。注意GPIO mode的选择。
4.打开NVICEXTI line[15:10]中断

这里是容易遗漏的一步,尽管使能了GPIO中断,但是在NVIC控制器中需要打开相应中断线。在configuration页面中,打开NVIC控制器,打开EXTI中断。
5.生成代码

与之前的方式一样,这里不再重复说明。
6.修改回掉函数

生成的代码中,在application/user路径下有stm32f7xx_it.c文件,为中断相关源文件。打开该文件,可以看到EXTI15_10_IRQHandler函数,里面嵌套了一个中断处理函数HAL_GPIO_EXTI_IRQHandler,打开,可以看到其具体内容。

其中包含了两个重要操作,首先清除中断标志,进而调用回掉函数HAL_GPIO_EXTI_Callback

这里的回掉函数可以自定义,可以代替这里的weak声明函数。

例如,我们可以在main中重新定义HAL_GPIO_EXTI_Callback函数,其函数中进行一个变量进行加一,isr_loop也就是中断函数的计数器。
7.实验操作

运行程序,可以看到当PA15中断被触发以后,该计数器将进行计数。
欢迎交流~

4.png (34.06 KB, 下载次数: 1)

4.png
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表