找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 464|回复: 6
收起左侧

stm32单片机中断函数调用main函数中的变量

[复制链接]
ID:1069599 发表于 2023-10-21 17:40 | 显示全部楼层 |阅读模式
请问如何在中断函数中使用main函数中的变量。
就是假设我在main函数里定义了一个uint16_t  cnt;然后通过按键产生外部中断时需要在中断函数里利用变量cnt进行if判断,就是if(cnt>10){};
但是编译显示未定义cnt。我查了一下好像是中断函数不能直接使用全局变量。请问有什么解决的办法吗?
回复

使用道具 举报

ID:883242 发表于 2023-10-21 17:57 | 显示全部楼层
main函数里面的变量也是局部变量,不叫全局变量,虽然至始至终都存在。
回复

使用道具 举报

ID:195496 发表于 2023-10-21 18:01 | 显示全部楼层
定义成全局变量就可以了
回复

使用道具 举报

ID:1069599 发表于 2023-10-21 18:24 | 显示全部楼层
大漠落日 发表于 2023-10-21 18:01
定义成全局变量就可以了

好的好的,谢谢
回复

使用道具 举报

ID:1069599 发表于 2023-10-21 18:24 | 显示全部楼层
Hephaestus 发表于 2023-10-21 17:57
main函数里面的变量也是局部变量,不叫全局变量,虽然至始至终都存在。

是的是的,我概念混淆了
回复

使用道具 举报

ID:526543 发表于 2023-10-22 16:02 | 显示全部楼层
volatile试试
回复

使用道具 举报

ID:883242 发表于 2023-10-22 18:04 | 显示全部楼层
2396711244 发表于 2023-10-21 18:24
是的是的,我概念混淆了

中断和main函数只能通过全局变量交换数据,注意原子操作就行了,其他的不用考虑。32位单片机16位数据就是原子的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表