第三章 stm32 cubemx 外部中断实验以及proteus仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章stm32 cubemx 外部中断实验以及proteus仿真
文章目录
前言
一、中断
二、配置步骤
1.基础配置
2.配置引脚,生成工程
3.开启中断,设置中断优先级
三.找到主函数,加入代码,编译。

四.寻找中断回调函数
五.利用中断回调函数
六.Proteus仿真或者烧录可直接看到效果。

总结
前言
这一章,将向大家介绍如何使用STM32F103 的外部中断。

前面的两章掌握了STM32F103 的IO 口最基本的操作。

本章将介绍如何将STM32F103 的外部中断,STM32的每个IO都可以作为外部中断输入,每个外部中断可以配置单独的触发方式(上升沿,下降沿或者双边沿触发)。

本章以中断的方式,实现在上一章中所实现的效果。

一、中断
所谓中断,是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序。

stm32的中断简言之就是,出现某次事件产生中断,暂停正在执行的主程序,去执行目标程序,执行完毕后返回主程序,继续执行。

中断又分为外部中断,串口中断,定时器中断等等
二、配置步骤
1.基础配置
步骤详情参考:第一章stm32 cubemx基础配置实验以及proteus 8的使用
1)sys中,选好调试方式,DEBUG中选中Serial Wire,实际上板子测试时会占用PA13和PA14两个I/O口,用作下载或者调试。

2)RCC时钟,晶振选择,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator,外部低速时钟(LSE)可有可无。

3)时钟配置,记录系统时钟频率,这里是72M用作仿真时选择芯片的晶振频率。

4)其他配置此工程不用,暂不配置。

2.配置引脚,生成工程
点击想要用到的引脚,鼠标左击选择GPIO_EXTI,GPIO_OUTPUT,我用到了PA1、PA4、PA5(自选)三个引脚,PA1作为外部中断的引脚,PA4、PA5两个引脚作为两个LED灯引脚,其他配置为cubemx默认状态即可。

3.开启中断,设置中断优先级
进行中断使能,由于此时只用到了外部中断,中断任务之间不存在影响,故优先级直接采取默认设置。

三.找到主函数,加入代码,编译。

1.加入int型变量exti_sign,根据exti_sign变量值在外部中断回调函数中的变化,来改变灯效的变化来实现上一章中的实验效果,从而体现出外部中断。

四.寻找中断回调函数
本章所引入的外部中断,触发方式为下降沿触发即由高电平转换为低电平时,触发中断,进入中断函数。

如图所示,为外部中断函数,选中函数点击鼠标右键选择如图可以进入到函数内部。

五.利用中断回调函数
此段函数我将其写在主函数下方的一个区域,注意不在主函数内部,可以在任意位置处,但应将其写在,BEGIN和END之间,这样符合cubemx书写代码的要求,不然如果配置错误重新生成时,代码会被覆盖。

BEGIN和END如下所示,任意两个之间即可。

六.Proteus仿真或者烧录可直接看到效果。

直接烧录时一定要注意选择的IO口,与实际stm32板子的原理图相匹配。

实验效果为每按下一次按键触发一次中断,使两个LED灯呈现双闪效果和跑马灯效果的转换。

如图所示,本次仿真的工程可之间采用上次Proteus仿真工程,过程请参考:第二章stm32 cubemx GPIO输入输出实验以及proteus仿真
按下一次后
总结
以上就是今天要讲的内容,本文介绍了外部中断的使用以及利用Proteus仿真看到的效果。

如果是在基础配置Cubemx或者基础操作Proteus时出现问题请参考:第一章stm32 cubemx 基础配置实验以及proteus 8的使用。

相关文档
最新文档