[CAN-bus/DeviceNet] 请问怎么看寄存器的值?

[复制链接]
4472|3
 楼主| coolhu 发表于 2007-4-28 22:39 | 显示全部楼层 |阅读模式
我用KEIL编译软件,请问怎么看sja1000的寄存器值,我查看的时候都是8个“?”,不知道是不是方法不对,另外我的can2个节点一个收一个发,发的一直判断总线处于发送状态而无法进入发送函数,收也一直不能进入接收函数,请教各位是什么问题呢?多谢了
桂电飞天鼠 发表于 2007-4-29 09:50 | 显示全部楼层

rt

在Keil中查看SJA1000的寄存器值?除非你是用了仿真器,否则是查不了真实的寄存器的值的。<br /><br />在option&nbsp;of&nbsp;target&nbsp;&quot;xxx&quot;这个属性选项中,off-chip&nbsp;Xdata&nbsp;memory&nbsp;data,这里需填写实际的SJA1000的起始地址以及大小。<br /><br />比如片选端(/CS):<br />接在P2.0,那地址的起始为0x0000,大小:0x001f;<br />接在P2.7,&nbsp;那地址的起始为0x0000,&nbsp;大小:0x001f;<br /><br />以上为/CS引脚直接接到单片机端口的,地址会有重复,如果用3-8译码器接的话就没有重叠。<br /><br />如果想读寄存器的值(仅限可读的寄存器),可以直接用<br /><br />TempData&nbsp;=&nbsp;*(BaseAddr+XXX);<br /><br />TempData:&nbsp;读出的内容存到这里,<br />BaseAddr:基地址,即上面所说的起始地址(0x0000或0x0000),<br />XXX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;寄存器的地址(Basic模式为从0到32)。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| coolhu 发表于 2007-4-29 11:50 | 显示全部楼层

多谢!

我用的是51的仿真器
桂电飞天鼠 发表于 2007-4-29 17:52 | 显示全部楼层

rt

用硬件仿真器应该跟用keil的软件仿真器查看某个地址的方法是一样的。<br /><br />在启动keil的Debug后,可以在菜单栏的“view”或在菜单栏附近的面板上,找到一个名为&quot;Memory&nbsp;Window&quot;的东东,点击打开之后在“Address:”输入不同的字母就可以查看不同的地址的内容。<br /><br />如:<br />x:0000(或x:0000h,还可以x:0x0000)<br />c:0000(或同上,主要是10制与16进制的区别)<br />i:0000<br />b:0000<br />p:0000<br /><br />x代表片外地址,c代表代码(code),i代表XXX(忘记了),b代表位地址,p代表页地址。<br /><br />所以如果想查看SJA的寄存器1的内容,就可以用x:0001。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

62

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部