新聞中心

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

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

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

          C1CTRL1bits.REQOP=4;

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

          while(C1CTRL1bits.OPMODE!=4); //請求進入配置模式

          ecan1ClkInit(); //調用波特率設置函數

          C1FCTRLbits.DMABS=0b000; //在DMA RAM 中設置4個報文緩沖

          ecan1WriteRxAcptFilter(1,0x36,0,2,0); //配置接過收濾寄存器

          /*配置接收屏蔽寄存器,要注意的是,這里設為“1”的位是非屏蔽位,設為“0”的位為屏蔽位。這里的0x7FF將會對標準幀ID的每一位都進行檢查是否對應的過濾器相匹配*/

          ecan1WriteRxAcptMask(0,0x7ff,0);

          C1CTRL1bits.REQOP=0;

          while(C1CTRL1bits.OPMODE!=0); //進入正常模式

          /*以下語句設置報文的發射接收控制*/

          C1RXFUL1=C1RXFUL2=C1RXOVF1=C1RXOVF2=0x0000;

          C1TR01CONbits.TXEN0=1; /*E1的0緩沖器為發射緩沖 */

          C1TR01CONbits.TXEN1=0; /* ECAN1的1緩沖器為接收緩沖 */

          C1TR01CONbits.TX0PRI=0b11; /* 發射緩沖的優先級*/

          }

          數據的發射和接收

          寫報文ID

          下面的函數將一個報文ID寫到ECAN1的發射緩沖區,其中各個參數代表的含義如下:

          /*buf -> 發射寄存器號

          txIdentifier ->發射報文的ID

          ide -> "0" 報文為標準幀

          "1" 報文為擴展幀

          remoteTransmit -> "0" 報文為正常報文

          "1" 報文為遠程報文 */

          void ecan1WriteTxMsgBufId(unsigned int buf, long txIdentifier, unsigned int ide, unsigned int remoteTransmit)

          {



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 交口县| 永春县| 济阳县| 农安县| 乌拉特后旗| 兴安县| 吉林省| 西畴县| 沛县| 通江县| 德阳市| 博乐市| 米泉市| 达孜县| 苍溪县| 西华县| 上虞市| 宜兰市| 神木县| 永兴县| 缙云县| 泽普县| 延川县| 监利县| 鄂伦春自治旗| 辉南县| 志丹县| 嘉禾县| 永宁县| 太湖县| 常宁市| 锦屏县| 三门峡市| 尼勒克县| 乌兰察布市| 天门市| 普宁市| 陕西省| 墨竹工卡县| 抚宁县| 清原|