找回密码
 立即注册
查看: 411|回复: 5

can通信中为何中断应答寄存器写1叫清零??

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-5-8 08:17:23 | 显示全部楼层 |阅读模式
问题点及代码如下:

        if((isr & 0x04) == 0x04)//TI==1:CAN模块数据帧发送完成。用户需要对TI写1,复位发送BUFFER的写指针
        {
                CANAR = ISR;//
                CANDR = 0x04;//CLR FLAG   为何这里明明是写1,缺叫清零,手册我也看了,也是这样写的,不是明白????
        }

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-5-8 09:32:10 | 显示全部楼层
写1清零是通过往指定寄存器位置写入1,
触发硬件执行清除对应标志位操作,
而不是直接将写入的内容赋值给寄存器。

像SPI标志位清除也是使用同样的方式。

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-5-8 09:36:29 | 显示全部楼层
乘风*** 发表于 2024-5-8 09:32
写1清零是通过往指定寄存器位置写入1,触发硬件执行清除对应标志位操作,而不是直接将写入的内容赋值给寄存 ...

突然反了,感觉好不习惯,感谢老师细心解答,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-04-30 11:28:17
已绑定手机

7

主题

48

回帖

557

积分

高级会员

积分
557
发表于 2024-5-12 02:39:45 来自手机 | 显示全部楼层
你考虑上升沿清零就行
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-5-14 10:17:22 | 显示全部楼层
38009*** 发表于 2024-5-8 09:36
突然反了,感觉好不习惯,感谢老师细心解答,

光反了算啥,有些标志位读始终是0,还需要再写0清除状态
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-5-14 11:05:18 | 显示全部楼层
hsr*** 发表于 2024-5-14 10:17
光反了算啥,有些标志位读始终是0,还需要再写0清除状态

这个我倒是遇到过,听有的老师说,不清零也行,最好后还是清一下零,
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:14 , Processed in 0.266617 second(s), 86 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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