打印

关于STM32中断函数与其他函数共用全局变量的问题

[复制链接]
952|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
追光少年|  楼主 | 2020-4-25 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问下
一、有个全局变量num,当我在main()中正在读取或写入 num 时,中断发生,在中断函数中读取或写入 num 。STM32怎么处理这种情况?

二、我是用中断检测PWM输入,在中断函数中将高电平时间存入全局变量 Channel_Val ,并在外部函数直接读出 CH1=Channel_Val;  为什么 CH1 从未出现错误?

使用特权

评论回复

相关帖子

沙发
你瞅啥| | 2020-4-25 20:18 | 只看该作者
num不是64位的或者浮点数就不用管。

使用特权

评论回复
板凳
caoenq| | 2020-4-26 12:08 | 只看该作者
你瞅啥 发表于 2020-4-25 20:18
num不是64位的或者浮点数就不用管。

单精度浮点数也是32位的,不是原子操作么?

使用特权

评论回复
地板
你瞅啥| | 2020-4-26 17:33 | 只看该作者
caoenq 发表于 2020-4-26 12:08
单精度浮点数也是32位的,不是原子操作么?

没研究过带FPU的STM32指令所以不知道。

对于不带FPU的STM32来说单精度浮点数是要分解成若干个操作,有中间值改变的,可以确定不是原子操作。

使用特权

评论回复
5
caoenq| | 2020-4-27 14:43 | 只看该作者
你瞅啥 发表于 2020-4-26 17:33
没研究过带FPU的STM32指令所以不知道。

对于不带FPU的STM32来说单精度浮点数是要分解成若干个操作,有中 ...

好的,谢谢。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

379

主题

379

帖子

0

粉丝