OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4105|回复: 6

HAL库函数__HAL_TIM_CLEAR_IT清楚位的问题

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2020-11-14
在线时间
15 小时
发表于 2020-11-14 13:24:02 | 显示全部楼层 |阅读模式
1金钱
定时器内清楚中断位是这么定义的
#define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__)     ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
一般用法是 __HAL_TIM_CLEAR_IT(TIM8,1<<3);

这里取反后再进行赋值难道不会影响到SR寄存器中的所有位吗?当多通道同时使能中断是不是会出现错误呢?
为什么不采用 &= ~(1<<3);的方式进行单个位清零?

还想问下SR寄存器中的CCXOF位一般可以怎么用呢?手册上说CCXOF位再CCXIF位置1的前提下才会为1,但在中断内部调用函数HAL_TIM_IRQHandler中就已经进行了 __HAL_TIM_CLEAR_IT) 清楚位操作
也就是说每次发生捕获中断进入回调函数时都不会出现CCXIF=1的条件,那CCXOF位还有什么用呢?










最佳答案

查看完整内容[请看2#楼]

这种写法,和寄存器操作方式有关,比如有些是写1清零,写0无影响,有些是写0清除,写1无影响。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-11-14 13:24:03 | 显示全部楼层
892565303 发表于 2020-11-16 11:34
但是对单个位控制不应该是&=~这样吗,直接取反再赋值影响其它位吧

这种写法,和寄存器操作方式有关,比如有些是写1清零,写0无影响,有些是写0清除,写1无影响。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-11-15 01:29:55 | 显示全部楼层
方便单个位控制
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2020-11-14
在线时间
15 小时
 楼主| 发表于 2020-11-15 10:13:33 | 显示全部楼层

原子哥可以详细解释下吗,为什可以方便单个位控制:
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-11-16 01:32:48 | 显示全部楼层
892565303 发表于 2020-11-15 10:13
原子哥可以详细解释下吗,为什可以方便单个位控制:

经过&,~之类的操作啊,你看寄存器代码
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2020-11-14
在线时间
15 小时
 楼主| 发表于 2020-11-16 11:34:27 | 显示全部楼层
正点原子 发表于 2020-11-16 01:32
经过&,~之类的操作啊,你看寄存器代码

但是对单个位控制不应该是&=~这样吗,直接取反再赋值影响其它位吧
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2020-11-14
在线时间
15 小时
 楼主| 发表于 2020-11-18 17:15:18 | 显示全部楼层
正点原子 发表于 2020-11-14 13:24
这种写法,和寄存器操作方式有关,比如有些是写1清零,写0无影响,有些是写0清除,写1无影响。

谢谢,我再了解下
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 14:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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