PIC_CCS CAN帮助文件(翻译)

CAN Bus_羊兄台译(有错误欢迎指出)


这些函数可以方便地访问控制器区域网络(CAN),包括MCP2515的CAN接口芯片和PIC18单片机。这些函数将只可用于MCP2515的CAN接口芯片和包含一个CAN或ECAN模块的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

 MCP2510和MCP2515接口芯片的驱动程序

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的结构体中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值