新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于dsPIC33FJ128MC506的CAN通信(07-100)

        基于dsPIC33FJ128MC506的CAN通信(07-100)

        ——
        作者:山東省科學院自動化研究所 張云 李明強 莊汝科 時間:2009-03-04 來源:電子產品世界 收藏

          DMA2通道初始化為E1接收:

        本文引用地址:http://www.104case.com/article/92042.htm

          void dma2init(void)

          {

          DMACS0=0; //清DMA控制器狀態位

          DMA2CON=0x0020; //DM為外設間接尋址模式,支持從DMA寫,并讀到外設

          DMA2PAD=0x0440; //DMA0PAD下載為E1接收寄存器的地址

          DMA2CNT=0x0007; //傳輸計數寄存器為8

          DMA2REQ=0x0022; //DMA外設REQ編號選擇位

          DMA2STA= __builtin_dmaoffset(&ecan1msgBuf[2][0]); //DMA起始地址位

          DMA2CONbits.CHEN=1;

          }

          上面程序中的“DMA0STA= __builtin_dmaoffset(ecan1msgBuf);”和“ DMA2STA= __builtin_dmaoffset(&ecan1msgBuf[2][0]); ”分別指明了DMA的起始地址位為ecan1msgBuf和(&ecan1msgBuf[2][0],ecan1msgBuf是一個兩維數組,在相關頭文件中定義,其語句為:

          E1緩沖器的設置:

          #define ECAN1_MSG_BUF_LENGTH 4 //長度為4個字

          //緩沖區為二維數據

          typedef unsigned int ECAN1MSGBUF [ECAN1_MSG_BUF_LENGTH][8];

          //數組位于DMA空間

          extern ECAN1MSGBUF ecan1msgBuf __attribute__((space(dma)));



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 昌黎县| 资兴市| 永泰县| 鹤壁市| 临朐县| 股票| 舞阳县| 图片| 陵川县| 墨竹工卡县| 广南县| 禄劝| 健康| 灵丘县| 阿尔山市| 湘潭县| 永安市| 营口市| 灵武市| 额敏县| 镇远县| 东山县| 吕梁市| 县级市| 丰城市| 阿拉善盟| 噶尔县| 衡阳市| 手游| 侯马市| 谷城县| 高台县| 台州市| 靖西县| 宁夏| 高青县| 新密市| 高陵县| 达州市| 淳化县| 名山县|