你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32C0测评】外部中断控制小灯

[复制链接]
知识不仅闹 发布时间:2024-4-25 17:29

外部中断控制小灯

原理图分析按键

我们根据我们上一节的点亮小灯,接下来我们来通过外部中断来控制小灯,我们可以打开之前生成的MX文件进行对引脚的编辑。** image-20240425102126908.png 我们根据原理图,可以发现我们的按键是在PC13引脚,其中一个引脚是复位引脚。 **这里我们就使用用户引脚来配置我们的外部中断,接下来进入我们的stm32cubemx中。

按键外部中断配置

image-20240425102505772.png 这里我们配置这俩个选项的原因是:第一我们的按键的默认电平就是高电平,按键的初始状态就是高电平。 **这里的配置是根据我们的外部中断的高低电平来做一些变换。

image-20240425102835914.png **别忘了开启我们的中断,外部中断控制,需要我们的中断设置来开启,才能触发我们的中断事件。配置我们开始更新工程。

代码编写

首先先说一下我们想实现的功能,通过外部中断翻转我们的小灯。image-20240425104603251.png **一般我们想使用外部中断,都是要重写中断处理函数,接下来我们一步步找到按键中断的处理的底层。 image-20240425144614278.png image-20240425144827335.png 好接下来我们复制函数明在it下重新编写。image-20240425145147882.png 这里我们重写的外部中断上升沿的中断回调函数,这里我们需要做引脚判断处理,假如其他引脚也设置外部中断,它也会进入程序执行一遍,所以我们需要对引脚进行判断。 **进行判断之后我们对引脚进行处理进行翻转电平,使得小灯完成亮灭的操作!

测试了一下发现了一个错误,image-20240425150840769.png **这里有俩个中断回调处理,我们是下降沿触发我们的中断重写函数,所以我们要选择下面的函数,由于我们这里选错了,导致我们的按键按下小灯不能翻转电平。** image-20240425151005015.png **好了整个程序完成了!按下按键就能实现翻转小灯的效果。

注意事项

**在编写的时候发现假如你有多个按键按下,在if判断按键按下的电平会导致按键的效果不会出现,这里我采用了了if-else if来解决按键的效果不会出现。简单来说,假如是外部中断来处理我们的多个按键,我们需要通过if-else if来轮询按键的速度会快一点吧。或者用switch的效果也可以多个按键中断的解决。

收藏 评论0 发布时间:2024-4-25 17:29

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版