查看: 5577|回复: 4

[其他] mscan 发送缓冲器选择寄存器 和发送标志寄存器 【已解决】

[复制链接]

该用户从未签到

7

主题

33

帖子

0

注册会员

Rank: 2

积分
117
最后登录
1970-1-1
发表于 2014-8-16 15:36:31 | 显示全部楼层 |阅读模式
本帖最后由 xu944789415 于 2014-11-4 10:27 编辑

看一个can  的程序的时候  unsigned char send_buf ;
                                              ......  CAN0TBSEL=CAN0TFLG;  
                                                    send_buf=CAN0TBSEL;.......
                                                  // 清 TXx 标志 (缓冲器准备发送)
                                              CAN0TFLG = send_buf;
其中对选择寄存器和标志寄存器的设置有点迷糊!如果CANTFLG=00000110那么CAN0TBSEL=00000110
是不是 send_buf==00000010 那么CAN0TFLG不就等于00000010了吗?不懂??求大神指教
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

4

主题

351

帖子

0

高级会员

Rank: 4

积分
984
最后登录
1970-1-1
发表于 2014-8-18 17:36:15 | 显示全部楼层

回复:mscan 发送缓冲器选择寄存器 和发送标志寄存器 上怎么样的关系!

 看的我好迷糊,我觉得你应该说一下哪个芯片,或者上传个完整的函数。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
发表于 2014-8-19 19:36:26 | 显示全部楼层

RE:mscan 发送缓冲器选择寄存器 和发送标志寄存器 上怎么样的关系!

呵呵,是这样的在大多数飞思卡尔的MSCAN中:
1、CANTBSEL 为发送缓冲区选择寄存器,置数时即为选择发送缓冲区,将CANTBSEL 的TXx(一般是低三位TX0,TX1,TX2)即寄存器空间的CANTXFG里边的置为1的最低位 选择为发送缓冲区。
2、CAN0TFLG 为CAN发送标志寄存器
当CAN在发送数据时 CAN0TFLG_TXEx会硬件自动置低,发送完毕会恢复高电平,在查询发送时需检查 TXEx是否为低电平,若是则应暂停发送数据,因为上一个数据还没发完。
if(!(CANTFLG_TXEx& 1))
{
return FALSE ;
}
TXEx写入1清除标志,写入0忽略标志。
而读TXE的状态是 为0时:相关报文缓冲区满
为1时 :相关报文缓冲区空。
再看你的程序:
CAN0TBSEL=CAN0TFLG;  //这其实是选择发送缓冲区的过程,将CAN0TFLG的高电平位(如上CAN0TFLG 某位为1时 :相关报文缓冲区空,即发送空闲)置数给CAN0TBSEL,即选择了空闲的缓冲区!!
send_buf=CAN0TBSEL;//send_buf 为中间变量 读了CAN0TBSEL,知道了MCU选了哪个缓冲区
CAN0TFLG = send_buf;//将CAN0TFLG 置数为send_buf,即将选择了的缓冲区对应的发送标志为置数,即清除对应的发送标志,确保能够正常发送
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

802

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1763
最后登录
1970-1-1
发表于 2014-9-3 14:49:42 | 显示全部楼层
参数是进制啊, 只是缓冲的变化
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

33

帖子

0

注册会员

Rank: 2

积分
117
最后登录
1970-1-1
 楼主| 发表于 2014-11-4 09:18:32 | 显示全部楼层
已解决!谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-20 13:00 , Processed in 0.082807 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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