基于dsPIC33FJ128MC506的CAN通信(07-100)
—— 基于dsPIC33FJ128MC506的CAN通信
ECAN接收和发射缓冲区的设置
本文引用地址:http://www.amcfsurvey.com/article/92042.htmDMA(直接存储器访问)方式是外设SFR与RAM间进行数据复制的非常高效的机制,dsPIC33FJ128MC506的ECAN模块支持DMA传输,共有8个DMA通道可供选择。在此我们选用0和2通道分别作为ECAN1的发射和接收。初始化语句如下:
DMA0通道初始化为ECAN1发射:
void dma0init(void)
{
DMACS0=0; //清DMA控制器状态位
DMA0CON=0x2020; //DMA为外设间接寻址模式,支持从DMA读,并写到外设
DMA0PAD=0x0442; //DMA0PAD下载为ECAN1发射寄存器的地址
DMA0CNT=0x0007; //传输计数寄存器为8
DMA0REQ=0x0046; //DMA外设REQ编号选择位
DMA0STA= __builtin_dmaoffset(ecan1msgBuf); //DMA起始地址位
DMA0CONbits.CHEN=1;
}
评论