PIC_CCS CAN幫助文件(翻譯)

CAN Bus_羊兄臺譯(有錯誤歡迎指出)


這些函數可以方便地訪問控制器區域網絡(CAN),包括MCP2515的CAN接口芯片和PIC18單片機這些函數將只可用於MCP2515的CAN接口芯片和包含一個CANECAN模塊的PIC單片機某些函數僅適用於ECAN模式所指定的工作方式,ECAN標誌會在註釋在後面所列出的中斷並不可用於MCP2515接口芯片

相關函數:

 

can_init(void);


CAN模塊初始化125K波特率,並清除所有過濾器(?)和標誌,可以接受來自任何ID的信息。 


can_set_baud(void);


初始化CAN總線的波特率爲125kHz的。它已經存在於 can_init() 函數中,所以沒有必要再調用它。

 

can_set_mode
(CAN_OP_MODE mode);


允許CAN模塊改變配置的模式,監聽模式,環回模式,禁止模式,或者普通模式。

 

can_set_functional_mode
(CAN_FUN_OP_MODE mode);


函數允許ECAN模塊的功能被改變爲傳統模式,增強型傳統模式, 或者先入先出 (fifo) 模式。ECAN


 

can_set_id(int* addr, int32 id, int1 ext);


函數可以用來設定過濾器,標記ID值到特定的地址。它也可以用來設置要發送的消息的ID。

 

can_get_id(int * addr, int1 ext);


返回接收到的消息的ID。

 

can_putd
(int32 id, int * data, int len,
int priority, int1 ext, int1 rtr);

 

使用給定的參數構造一個CAN包,並把它放置在一個可用的發送緩衝區。

can_getd
(int32 & id, int * data, int & len,
struct rx_stat & stat);

CAN緩衝器取回一個消息,並存儲在函數參數的相關位置中。

can_enable_rtr(PROG_BUFFER b);


啓用自動應答功能。當從特定ID接收到數據時,它會自動將用戶創建的數據包,發送到此ID。ECAN

 

can_disable_rtr(PROG_BUFFER b);


禁止自動應答功能. ECAN

 

can_load_rtr
(PROG_BUFFER b, int * data, int len);

 當從觸發ID接到數據時,創建和加載的數據包會自動傳輸。ECAN


can_enable_filter(long filter);

 

啓用ECAN模塊中一個包含的額外的過濾器。ECAN

can_disable_filter(long filter);


禁止ECAN模塊中一個包含的額外的過濾器。ECAN

  

can_associate_filter_to_buffer

(CAN_FILTER_ASSOCIATION_BUFFERS buffer,CAN_FILTER_ASSOCIATION filter);

 

 將一個過濾器關聯到一個特定的緩衝區,允許只用特定的緩衝區來進行過濾。在ECAN模塊中提供。ECAN

can_associate_filter_to_mask

(CAN_MASK_FILTER_ASSOCIATE mask,

CAN_FILTER_ASSOCIATION filter);

 

用一個特定的緩衝去關聯一個標誌。只允許特定的緩衝應用這個標誌。在ECAN模塊中提供。ECAN

can_fifo_getd(int32 & id,int * data,

int &len,struct rx_stat & stat);

檢索先入先出緩衝器中的下一個緩衝區。只應用在FIFO模式下運行的ECON模塊中。ECAN

Relevant Preprocessor:

 

None

 

 

相關中斷:

 

 #int_canirx  

  觸發中斷,CAN接受到一個無效的包時。

#int_canwake

  觸發中斷, PIC被CAN喚醒時。

#int_canerr

  觸發中斷,CAN模式下有錯誤時。

#int_cantx0

  觸發中斷,緩衝器0傳輸完成。

#int_cantx1

  觸發中斷,緩衝器1傳輸完成。

#int_cantx2

  觸發中斷,緩衝器2傳輸完成。

#int_canrx0

  觸發中斷,緩衝器0發送完成。

#int_canrx1

  觸發中斷,緩衝器1發送完成。

 

Relevant Include Files:

 

can-mcp2510.c

 MCP2510MCP2515接口芯片驅動程序

can-18xxx8.c

  內置的CAN模塊驅動程序

can-18F4580.c

 

  內置ECAN模塊驅動程序

Relevant getenv() Parameters:

 

none

 

 

示例代碼:

 

can_init();

// 初始化CAN總線

can_putd(0x300,data,8,3,TRUE,FALSE);

// 用CAN總線發送數據。ID=0x300,8位字節數據,指針指向data,爲TURE時創建一個擴展ID。

//the FALSE creates?

can_getd(ID,data,len,stat);

// 從CAN總線上檢索一個數據,保存ID號到ID變量,數據指針指向數據data,data中的字節數保存在len變量中,

//data的結構在stat的結構體中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章