打印
[CAN-bus/DeviceNet]

请问怎么看寄存器的值?

[复制链接]
3762|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coolhu|  楼主 | 2007-4-28 22:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用KEIL编译软件,请问怎么看sja1000的寄存器值,我查看的时候都是8个“?”,不知道是不是方法不对,另外我的can2个节点一个收一个发,发的一直判断总线处于发送状态而无法进入发送函数,收也一直不能进入接收函数,请教各位是什么问题呢?多谢了

相关帖子

沙发
桂电飞天鼠| | 2007-4-29 09:50 | 只看该作者

rt

在Keil中查看SJA1000的寄存器值?除非你是用了仿真器,否则是查不了真实的寄存器的值的。

在option of target "xxx"这个属性选项中,off-chip Xdata memory data,这里需填写实际的SJA1000的起始地址以及大小。

比如片选端(/CS):
接在P2.0,那地址的起始为0x0000,大小:0x001f;
接在P2.7, 那地址的起始为0x0000, 大小:0x001f;

以上为/CS引脚直接接到单片机端口的,地址会有重复,如果用3-8译码器接的话就没有重叠。

如果想读寄存器的值(仅限可读的寄存器),可以直接用

TempData = *(BaseAddr+XXX);

TempData: 读出的内容存到这里,
BaseAddr:基地址,即上面所说的起始地址(0x0000或0x0000),
XXX     : 寄存器的地址(Basic模式为从0到32)。
              

使用特权

评论回复
板凳
coolhu|  楼主 | 2007-4-29 11:50 | 只看该作者

多谢!

我用的是51的仿真器

使用特权

评论回复
地板
桂电飞天鼠| | 2007-4-29 17:52 | 只看该作者

rt

用硬件仿真器应该跟用keil的软件仿真器查看某个地址的方法是一样的。

在启动keil的Debug后,可以在菜单栏的“view”或在菜单栏附近的面板上,找到一个名为"Memory Window"的东东,点击打开之后在“Address:”输入不同的字母就可以查看不同的地址的内容。

如:
x:0000(或x:0000h,还可以x:0x0000)
c:0000(或同上,主要是10制与16进制的区别)
i:0000
b:0000
p:0000

x代表片外地址,c代表代码(code),i代表XXX(忘记了),b代表位地址,p代表页地址。

所以如果想查看SJA的寄存器1的内容,就可以用x:0001。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

62

帖子

1

粉丝