亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sja_bcanfunc.c

?? CAN控制器SJA1000的控制模塊BCAN
?? C
?? 第 1 頁 / 共 2 頁
字號:


/************************************************************************
 *函數原型: bit   BCAN_HW_INIT(unsigned char  BCAN_ACR,                 *
 *                             unsigned char  BCAN_AMR,                 *
 *                             unsigned char  Bus_Timing0,              *
 *                             unsigned char  Bus_Timing1,              *
 *                             unsigned char  Out_Control,              *
 *                             unsigned char  Clock_Out                 *
 *                            )                                         *
 *參數說明:                                                             *
 *    BCAN_ACR:存放驗收代碼寄存器(ACR)的參數設置                      *
 *    BCAN_AMR:存放接收屏蔽寄存器(AMR)的參數設置                      *
 *    Bus_Timing0:存放總線定時0寄存器(BTR0)的參數設置                   *
 *    Bus_Timing1:存放總線定時1寄存器(BTR1)的參數設置                   *
 *    Out_Control:存放輸出控制寄存器 (OC)  的參數設置                   *
 *    Clock_Out:存放時鐘分頻寄存器 (CDR) 的參數設置                     *
 *                                                                      *                        
 *返回值:                                                               *
 *           0 ; 表示初始化成功                                         *
 *           1 ; 表示初始化失敗                                         *
 *                                                                      * 
 *說明:CAN控制器的初始化只能在復位模式下才能完成。初始化操作之前請先進入*
 *     到復位操作模式,并將要初始化的各參數的值按數據手冊中的計算方法,正 *
 *     確的按實際需要計算好參數后,將參數寫入對應的寄存器 。            *
 *注: 為了CAN控制器的正確運行,請務必仔細的閱讀SJA1000的數據手冊       *
 *                                                                      *
 *示例:設應用系統中晶體頻率16MHZ,節點只接收ID(標志符)高八位為        *
 *      '10101010'的消息,系統波特率為50Kbit/s,關閉CLKOUT輸出。         *
 *      則根據數據手冊中的計算方法的各參數如下:                        *
 *      ACR==0AAH,AMR==00H,BTR0==0C9H,BTR1==0C9H,OC==0FFH,CDR=48H       *
 * 則調用本函數為:                                                     *
 *     BCAN_HW_INIT(0xaa,0x00,0xc9,0xc9,0xff,0x48)                      *                     
 ************************************************************************
 bit             BCAN_HW_INIT(unsigned char  BCAN_ACR,       
                              unsigned char  BCAN_AMR,      
                              unsigned char  Bus_Timing0,   
                              unsigned char  Bus_Timing1,   
                              unsigned char  Out_Control,    
                              unsigned char  Clock_Out      
                              ) 
{
  SJA_BCANAdr=REG_ACR;          //訪問地址指向驗收代碼寄存器(ACR)
  *SJA_BCANAdr=BCAN_ACR;        //寫入參數
  if(*SJA_BCANAdr != BCAN_ACR)  //校驗寫入值
  {
    return  1; 
  }
  SJA_BCANAdr=REG_AMR;          //訪問地址指向驗收屏蔽寄存器(AMR)
  *SJA_BCANAdr=BCAN_AMR;        //寫入參數
  if(*SJA_BCANAdr != BCAN_AMR)  //校驗寫入值
  {
    return  1; 
  }
  SJA_BCANAdr=REG_BTR0;          //訪問地址指向總線定時寄存器0
  *SJA_BCANAdr=Bus_Timing0;      //寫入參數
  if(*SJA_BCANAdr != Bus_Timing0)//校驗寫入值
  {
    return  1; 
  }
  SJA_BCANAdr=REG_BTR1;          //訪問地址指向總線定時寄存器0
  *SJA_BCANAdr=Bus_Timing1;      //寫入參數
  if(*SJA_BCANAdr != Bus_Timing1)//校驗寫入值
  {
    return  1; 
  }
  SJA_BCANAdr=REG_OCR ;          //訪問地址指向輸出控制寄存器
  *SJA_BCANAdr=Out_Control;      //寫入參數
  if(*SJA_BCANAdr != Out_Control)//校驗寫入值
  {
    return  1; 
  } 
  SJA_BCANAdr=REG_CDR;          //訪問地址指向輸出控制寄存器
  *SJA_BCANAdr=Clock_Out;        //寫入參數
  return    0;
}                         

/************************************************************************
 *函數原型:  bit   BCAN_DATA_WRITE(unsigned char *SendDataBuf)*
 *參數說明:  特定幀各式的數據?                                         *
 *返回值:                                                               *
 *           0    ; 表示將數據成功的送至發送緩沖區                      *
 *           1	  ; 表示上一次的數據正在發送,                          *
 *                ; 表示發送緩沖區被鎖定,不能寫入數據                  *
 *                ; 表示寫入數據錯誤                                    * 
 *說明: 將待發送特定幀各式的數據,送入SJA1000發送緩存區中,然后啟動     *
 *        SJA1000發送。                                                 *
 *   特定幀格式為:開始的兩個字節存放 '描述符' ,以后的為數據             *
 *   描述符包括11位長的ID(標志符)\1位RTR\4位描述數據長度的DLC共16位    *
 *                                                                      *
 *注:本函數的返回值僅指示,將數據正確寫入SJA1000發送緩存區中與否。     *
 *    不指示SJA1000將該數據正確發送到CAN總線上完畢與否                  *
 ************************************************************************/ 
 bit   BCAN_DATA_WRITE(unsigned char *SendDataBuf)
 {
   unsigned  char  TempCount;
   SJA_BCANAdr = REG_STATUS;            //訪問地址指向狀態寄存器
   if((*SJA_BCANAdr&0x08) == 0)         //判斷上次發送是否完成
   {
    return	1;
   }  

   if((*SJA_BCANAdr&0x04)==0)          //判斷發送緩沖區是否鎖定
   {
     return	1;
   }  
 
   SJA_BCANAdr = REG_TxBuffer1;        //訪問地址指向發送緩沖區1
   if((SendDataBuf[1]&0x10)==0)        //判斷RTR,從而得出是數據幀還是遠程幀
   { 
     TempCount =(SendDataBuf[1]&0x0f)+2; //輸入數據幀
   }

   else
   {
     TempCount =2;                     //遠程幀
   }

  memcpy(SJA_BCANAdr,SendDataBuf,TempCount);
   return 0;
}

/************************************************************************
 *函數原型:  bit    BCAN_DATA_RECEIVE(unsigned char *RcvDataBuf);       *
 *參數說明:  RcvDataBuf,存放微處理器保存數據緩沖區                      *
 *返回值:    0;接收成功                                                 *
 *           1;接收失敗                                                 * 
 *說明:CAN控制器接收數據,僅限于接收數據                                 *
 ************************************************************************/
 bit    BCAN_DATA_RECEIVE(unsigned char *RcvDataBuf)
 {
   unsigned  char  TempCount; 
   SJA_BCANAdr = REG_STATUS;                //訪問地址指向狀態寄存器
   if((*SJA_BCANAdr&0x01)==0)               //判斷報文是否有效
   {
      return 1;
   }
   
   SJA_BCANAdr = REG_RxBuffer2;             //訪問地址指向接收緩沖區2
   if((*SJA_BCANAdr&0x10)==0)               //如果是數據幀
   {
     TempCount=(*SJA_BCANAdr&0x0f)+2;       //計算報文中數據的個數
   }
   
   else
   {
    TempCount=2;
   }
   SJA_BCANAdr = REG_RxBuffer1;             //訪問地址指向接收緩沖區1
   memcpy(RcvDataBuf,SJA_BCANAdr,TempCount);//讀取接收緩沖區的報文
   return  0;
 }

/************************************************************************
 *函數原型:  bit  BCAN_CMD_PRG(unsigned char cmd)             *
 *參數說明:  cmd:sja1000運行的命令字                                    *
 *             01:發送請求                                              *
 *             02:中止發送                                             *
 *             04:釋放接收緩沖區                                       *
 *             08:清除超載狀態                                         *
 *             0x10:進入睡眠狀態                                        *
 *                                                                      *
 *返回值:                                                               *
 *           0 ; 表示命令執行成功                                       *
 *           1 ; 表示命令執行失敗                                       *
 *                                                                      * 
 *說明:      執行sja1000命令                                            * 
 ************************************************************************/ 
 bit  BCAN_CMD_PRG(unsigned char cmd)
 {
   SJA_BCANAdr=REG_COMMAND;            //訪問地址指向命令寄存器
   *SJA_BCANAdr=cmd;                   //啟動命令字
   switch(cmd)
   {
     case  TR_CMD:                     //發送請求命令
           return    0;
           break;
     case  AT_CMD:                     //夭折發送命令 
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態寄存器   
           if((*SJA_BCANAdr & 0x20)==0)//判斷是否正在發送
           {
              return  0;
           }
           else
           {
              return  1;
           }   
           break; 
     case  RRB_CMD:                    //釋放接收緩沖區 
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態寄存器   
           if((*SJA_BCANAdr & 0x01)==1)//判斷是否釋放成功
           {
             return  1;
           }
           else
           {
              return  0;
           }   
           break; 
  
     case  COS_CMD:                    //清除超載狀態
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態寄存器   
           if((*SJA_BCANAdr & 0x02)==0)//判斷清除超載是否成功
           {
             return  0;
           }
           else
           {
              return  1;
           }   
           break; 
     
     case  GTS_CMD:                    //進入睡眠狀態命令 
           return    0;
           break; 
     default:
             return  1;
             break; 
   }

 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩福利视频导航| 亚洲午夜久久久久久久久久久| 成人美女视频在线观看18| 日本一区二区在线不卡| 免费观看在线色综合| 国产偷国产偷亚洲高清人白洁| 91免费视频大全| 美女视频黄a大片欧美| 中文字幕一区免费在线观看| 91麻豆精品国产91久久久久久 | 不卡视频一二三| 三级久久三级久久| 最好看的中文字幕久久| 欧美va天堂va视频va在线| 91婷婷韩国欧美一区二区| 国产美女娇喘av呻吟久久| 午夜电影久久久| 一区精品在线播放| 26uuu国产电影一区二区| 精品视频免费在线| 成人国产视频在线观看| 久久99最新地址| 亚洲va韩国va欧美va精品| 亚洲色图都市小说| 日本一区二区三区四区 | 91精品中文字幕一区二区三区| 99re成人精品视频| 成人国产一区二区三区精品| 国产呦萝稀缺另类资源| 美女视频一区二区| 亚洲国产精品天堂| 亚洲影视在线观看| 亚洲你懂的在线视频| 国产精品久久久久久久浪潮网站| 2023国产精品自拍| 欧美tickle裸体挠脚心vk| 3d成人动漫网站| 欧美视频中文字幕| 国产一区二区三区免费观看| 亚洲成人av免费| 亚洲成人动漫一区| 亚洲女性喷水在线观看一区| 国产区在线观看成人精品 | 亚洲午夜久久久久久久久电影网| 欧美国产欧美综合| 精品国产一区二区国模嫣然| 欧美另类变人与禽xxxxx| 日本精品一区二区三区高清| 成人av免费在线观看| 国产一区二区三区久久久| 美国欧美日韩国产在线播放 | 亚洲午夜免费福利视频| 国产视频一区二区在线| 精品国产免费一区二区三区四区 | 亚洲一区二区欧美| 亚洲女厕所小便bbb| 一区精品在线播放| 一区二区中文字幕在线| 中文字幕一区二区三区蜜月| 国产精品久久久久久亚洲毛片| 国产日韩欧美电影| 日本一区二区三区四区在线视频| 国产亚洲1区2区3区| 国产日韩欧美麻豆| 国产精品色呦呦| 国产精品视频yy9299一区| 国产精品美女久久久久久久| 国产精品久久久久久久浪潮网站| 欧美高清在线视频| 国产精品美女一区二区在线观看| 国产精品免费丝袜| 自拍偷在线精品自拍偷无码专区| 中文字幕一区二区三区不卡| 亚洲免费大片在线观看| 亚洲国产精品ⅴa在线观看| 精品少妇一区二区三区日产乱码 | 中文字幕一区二区三区在线观看 | 亚洲国产综合人成综合网站| 亚洲第一搞黄网站| 日本成人在线电影网| 美女性感视频久久| 国产高清在线精品| 丁香六月久久综合狠狠色| 色狠狠一区二区| 欧美又粗又大又爽| 欧美一卡2卡三卡4卡5免费| 精品久久久三级丝袜| 国产三级一区二区三区| 日本成人在线不卡视频| 久久66热偷产精品| 成人中文字幕在线| 日本高清不卡aⅴ免费网站| 欧美一区二区三区四区高清| 久久久精品免费观看| 亚洲视频一二三区| 亚洲高清三级视频| 国产乱一区二区| 色成年激情久久综合| 538prom精品视频线放| 中文字幕乱码久久午夜不卡| 亚洲国产乱码最新视频 | 免费亚洲电影在线| 国产黑丝在线一区二区三区| 欧美亚洲自拍偷拍| 日韩久久精品一区| 一区二区三区四区不卡视频| 日韩不卡免费视频| 成人av第一页| 69成人精品免费视频| 中文字幕精品在线不卡| 日韩在线a电影| 成人三级在线视频| 欧美日本在线观看| 国产精品美女久久久久aⅴ| 日韩精品久久久久久| 高清av一区二区| 91精品国产高清一区二区三区 | 久久97超碰色| 欧美性一区二区| 久久久久久久久蜜桃| 天天操天天色综合| av电影一区二区| 亚洲精品一区二区三区福利| 亚洲成人三级小说| 成人精品免费网站| 欧美不卡一区二区| 一区二区三区小说| 不卡的电影网站| 久久蜜桃av一区精品变态类天堂| 亚洲国产精品一区二区久久 | 色狠狠综合天天综合综合| 久久蜜臀精品av| 青娱乐精品在线视频| 欧亚洲嫩模精品一区三区| 欧美国产日本视频| 国内精品不卡在线| 91精品国产综合久久香蕉的特点| 成人av小说网| 精品国产一二三| 亚洲aaa精品| 色又黄又爽网站www久久| 日韩视频不卡中文| 天堂一区二区在线| 色综合咪咪久久| 国产精品成人免费精品自在线观看| 久久99国产精品久久99果冻传媒| 91麻豆精品国产自产在线| 亚洲精品久久嫩草网站秘色| 成人免费高清在线观看| 国产亚洲一区二区在线观看| 久国产精品韩国三级视频| 欧美理论在线播放| 免费观看一级特黄欧美大片| 欧美福利视频导航| 丝袜美腿亚洲一区二区图片| 欧美日韩免费电影| 亚洲欧美一区二区三区极速播放 | 精品夜夜嗨av一区二区三区| 国产精品资源在线| 国产欧美一区二区精品性色超碰| 国产成人精品综合在线观看| 久久精品一区二区三区av| 国产一区二区日韩精品| 久久精品亚洲精品国产欧美| 国产毛片一区二区| 久久久www免费人成精品| 国产精品一品视频| 国产精品午夜在线观看| 菠萝蜜视频在线观看一区| 日韩理论片一区二区| 色偷偷久久一区二区三区| 亚洲在线视频免费观看| 欧美精品乱码久久久久久| 日韩在线观看一区二区| 精品国产成人系列| 国产经典欧美精品| 国产精品久久久久久久久动漫| 91网页版在线| 亚洲成人免费在线观看| 日韩精品一区二区三区swag | 国产精品毛片高清在线完整版| 99久久精品国产一区二区三区| 中文字幕一区二区不卡| 在线观看亚洲专区| 捆绑调教一区二区三区| 欧美激情一二三区| 色系网站成人免费| 天天亚洲美女在线视频| 久久精品一区二区三区不卡 | 亚洲午夜羞羞片| 日韩欧美国产1| 成人污污视频在线观看| 亚洲一区二区影院| 日韩久久免费av| 99久久免费国产| 日本人妖一区二区| 欧美国产综合色视频| 欧美日韩精品欧美日韩精品 | 蜜桃精品视频在线观看| 久久久99精品久久|