Embedded 需要关于CAN协议的教程吗

Embedded 需要关于CAN协议的教程吗,embedded,arm,can-bus,Embedded,Arm,Can Bus,我的实验室分配了一个项目,在ARM7上实现CAN协议 我找了一些教程和示例代码,但看起来都太复杂了,我想我应该在编码部分得到一些帮助。有人能给我解释一下ARM板上的基本发射机和接收机编码吗 发件人代码如下所示。我在不理解表达的全部含义时使用了问号 #include <lpc23xx.h> #include "type.h #include "can.h" #include <LPC23xx.H> CAN_MSG MsgBuf_RX1,MsgBuf_RX2; // TX

我的实验室分配了一个项目,在ARM7上实现CAN协议

我找了一些教程和示例代码,但看起来都太复杂了,我想我应该在编码部分得到一些帮助。有人能给我解释一下ARM板上的基本发射机和接收机编码吗

发件人代码如下所示。我在不理解表达的全部含义时使用了问号

#include <lpc23xx.h>
#include "type.h
#include "can.h"
#include <LPC23xx.H>

CAN_MSG MsgBuf_RX1,MsgBuf_RX2; // TX and RX Buffers for CAN message
volatile DWORD CAN1RxDone, CAN2RxDone;

int main(void)
{
    DWORD tempbuf1,tempbuf2;

    int current;
    FIO2DIR=0x000000FF;
    CAN_Init(BITRATE100K28_8MHZ);

    MsgBuf_RX2.Frame = 0x0;
    MsgBuf_RX2.MsgID = 0x0;
    MsgBuf_RX2.DataA = 0x0;
    MsgBuf_RX2.DataB = 0x0;
    CAN_SetACCF(ACCF_BYPASS);

    while (1)
    {
        while (!(CAN2GSR & (1 << 0)) )
            ;

        if (CAN2RxDone == TRUE)
        {
            tempbuf1 = MsgBuf_RX2.DataA; // Data A has 32 bits, of which only the
                                         // first 16 bits are actual data
            tempbuf2 = (tempbuf1 & 0x0000ffff); //??

            current = tempbuf2;
            if ((current/3) >= 25)
                FIO2SET |= 0x00000001; ///??
        }

        CAN2RxDone = FALSE;

        if (MsgBuf_RX2.Frame & (1 << 10)) //?
        {
            MsgBuf_RX2.Frame &= ~(1 << 10); //?
        }
    }
}
#包括
#包括“h型
#包括“can.h”
#包括
CAN_MSG MsgBuf_RX1,MsgBuf_RX2;//CAN消息的发送和接收缓冲区
易失性DWORD CAN1RxDone,CAN2RxDone;
内部主(空)
{
德沃德·坦普尔一世,坦普尔二世;
电流;
FIO2DIR=0x000000FF;
CAN_Init(比特率100k28_8MHZ);
MsgBuf_RX2.Frame=0x0;
MsgBuf_RX2.MsgID=0x0;
MsgBuf_RX2.DataA=0x0;
MsgBuf_RX2.DataB=0x0;
CAN_设置ACCF(ACCF_旁路);
而(1)
{
而(!(CAN2GSR&(1=25)
FIO2SET |=0x00000001;//??
}
CAN2RxDone=FALSE;

如果(MsgBuf_RX2.Frame&(1Keil)提供了一些CAN开发示例和程序:

在这里,您可以找到LPC2129的can源代码:


这里有一些例子:

它的lpc2368板由arm7tdmi-s组成。我使用的是keil uvision4和flashmagic,我也有一个示例程序。但我无法完全理解它,因为我阅读了lpc2368的数据表,我发现很难理解。所以我决定只制作一个程序,使用can协议将8位从一个板发送到另一个板。t电路板规格很容易获得。只需谷歌lpc2368用户手册和数据表。我有一个主程序和从程序,如果你想查看它,我可以发布。阅读can规格。你需要花更多的精力来理解复杂的事情。如果你仍然有问题,请咨询你的导师。因为你对你所了解的内容了解很少如果你在做什么,你的问题太开放了,不适合在这里提问。特别是,要求像教程这样的外部资源在这里是离题的。