其实SJA1000的发送/接收程序,不过是要求完成一个数组的拷贝。C51是处理对象的,何谓对象?数组是不是一个对象?因此发送程序应该写为:
SJA1000_TXB对象A=用户发送数据对象B
假定SJA1000地址在0x7f,发送/接收缓存在0x7f10。发送/接收ID=0x78e(RTR=0),用户发送数据在TXdata[11],用户接收数据在RXdata[11].
uchar TXdata[11]={0x08,0x78,0xe0,0x33,0x34,0x35,0x36,0x37},RXdata[11];
我的发送程序:
void send() { *(PA xdata *)0x7f10=*(PA *)TXdata; can_write(CMR,0x01); }
我的接收程序: void receive(void) { *(PA *)RXdata=*(PA xdata *)0x7f10; can_write(CMR,0x04); }
PA是在头文件中定义的数据类型,各位都想得到。“不是我们做不到,而是我们想不到”。
|