<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

            接收過濾寄存器和屏蔽寄存器的設置

          本文引用地址:http://www.ex-cimer.com/article/92042.htm

            /* 下面的函數(shù)用來設置接收過濾器"n" ,各輸入?yún)?shù)的意義分別為:

            n-> 過濾器號,范圍為[0-15]

            identifier-> 合法的標識符

            exide -> 是否擴展數(shù)據(jù)幀,"0" 表示為標準數(shù)據(jù)幀,"1"表示為擴展數(shù)據(jù)幀

            bufPnt -> 過濾后的信息存放的緩沖區(qū),范圍為[0-15]

            maskSel -> 關連的屏蔽寄存器[0-3] */

            void ecan1WriteRxAcptFilter(int n, long identifier, unsigned int exide, unsigned int bufPnt, unsigned int maskSel)

            {

            /*定義局部變量*/

            unsigned long sid10_0=0, eid15_0=0, eid17_16=0;

            unsigned int *sidRegAddr,*bufPntRegAddr,*maskSelRegAddr, *fltEnRegAddr;

            /*因為將要設置的特殊寄存器要與別的寄存器共用地址,所以需設置控制位WIN*/

            C1CTRL1bits.WIN=1;

            /* 根據(jù)輸入的參數(shù),計算出相應寄存器的地址,包括濾波器n的地址、緩沖指針寄存器地址、相關的屏蔽寄存器的地址及接收過濾使能寄存器的相關位*/

            // 接過過濾寄存器的地址

            sidRegAddr = (unsigned int *)(&C1RXF0SID + (n << 1));

            //報文緩沖區(qū)地址

            bufPntRegAddr = (unsigned int *)(&C1BUFPNT1 + ((n >> 2)*2) ) ;

            //屏蔽寄存器地址

            maskSelRegAddr = (unsigned int *)(&C1FMSKSEL1 + ((n >> 3)*2));

            //過濾器使能地址



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();