打印
[CAN-bus/DeviceNet]

请教关于用P0口做为IO模拟总线对CAN进行读写操作.

[复制链接]
2284|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pjh012345|  楼主 | 2007-8-18 10:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想用P0口作为IO模拟总线对CAN进行操作,不知道哪个老师有这样的经验的.
早上试了一下,没成功.
sbit P1_7=P1^7;//ALE
sbit P2_0=P2^0;SJA_CS
sbit P3_6=P3^6;//WR
sbit P3_7=P3^7;//RD
uchar addr;//CAN寄存器地址
uchar dat;//写进去的数据
void wrfunction(uchar addr,uchar dat)
{
  P1_7=1;
  P0=addr;
  P2_0=0;
  P1_7=0;
  P3_6=0;
  P0=dat;
  P3_6=1;
  _nop();
  _nop();
  _nop();
}
这是我的程序,请老师们帮忙看一下.谢谢了

相关帖子

沙发
zlgCAN| | 2007-8-19 08:16 | 只看该作者

参考SJA1000数据手册最后面的波形,满足即可。

使用特权

评论回复
板凳
pjh012345|  楼主 | 2007-8-19 20:47 | 只看该作者

请教关于用P0口做为IO模拟总线对CAN进行读写操作

谢谢ZLGCAN,我根据你的建议改了程序
但还是不行,不知道有没有范例
void WRfunction(uchar addr,uchar dat)
{
  SJA1000_ALE=0;
  _nop_();
  SJA1000_RD=1;
  SJA1000_ALE=1;
  _nop_();
  P0=addr;
  SJA1000_ALE=0;
  _nop_();
  SJA1000_CS=0;
  _nop_();
  SJA1000_WR=0;
  P0=dat;
  _nop_();
  SJA1000_WR=1;
  _nop_();
  SJA1000_ALE=1;

}
我这个程序有问题吗

使用特权

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

本版积分规则

2

主题

3

帖子

1

粉丝