基于dsPIC33FJ128MC506的CAN通信(07-100)
—— 基于dsPIC33FJ128MC506的CAN通信
ECAN接收和發(fā)射緩沖區(qū)的設置
本文引用地址:http://www.ex-cimer.com/article/92042.htmDMA(直接存儲器訪問)方式是外設SFR與RAM間進行數(shù)據(jù)復制的非常高效的機制,dsPIC33FJ128MC506的ECAN模塊支持DMA傳輸,共有8個DMA通道可供選擇。在此我們選用0和2通道分別作為ECAN1的發(fā)射和接收。初始化語句如下:
DMA0通道初始化為ECAN1發(fā)射:
void dma0init(void)
{
DMACS0=0; //清DMA控制器狀態(tài)位
DMA0CON=0x2020; //DMA為外設間接尋址模式,支持從DMA讀,并寫到外設
DMA0PAD=0x0442; //DMA0PAD下載為ECAN1發(fā)射寄存器的地址
DMA0CNT=0x0007; //傳輸計數(shù)寄存器為8
DMA0REQ=0x0046; //DMA外設REQ編號選擇位
DMA0STA= __builtin_dmaoffset(ecan1msgBuf); //DMA起始地址位
DMA0CONbits.CHEN=1;
}
評論