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

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

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:589
  • 最近打卡:2025-08-23 17:47:45
已绑定手机

161

主题

596

回帖

1161

积分

金牌会员

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

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

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-08-23 08:57:24
已绑定手机

45

主题

2172

回帖

7590

积分

论坛元老

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

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

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:589
  • 最近打卡:2025-08-23 17:47:45
已绑定手机

161

主题

596

回帖

1161

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-08-21 07:14:29
已绑定手机

7

主题

51

回帖

667

积分

高级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-08-23 19:30:06
已绑定手机

31

主题

357

回帖

2431

积分

金牌会员

机长

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

光反了算啥,有些标志位读始终是0,还需要再写0清除状态
业余撸代码,专业开飞机 https://gitee.com/STC-MCU
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:589
  • 最近打卡:2025-08-23 17:47:45
已绑定手机

161

主题

596

回帖

1161

积分

金牌会员

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

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-24 03:21 , Processed in 0.121359 second(s), 83 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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