基于Linux Socket 函数实现CAN2.0设备的通信功能。
该IP为CAN设备的API库,提供了CAN设备的初始化,接受发送数据以及关闭设备等操作。
无
l 结构体设计
无
l 主要函数说明
函数原型 | objCan * can_init( int8 chan, uint8 mode , int32 baudrate, int buffLen) |
功能描述 | 创建并初始化一个CAN设备。 |
输入参数 | int8 chan:can设备的通道号,值为0或者1; uint8 mode:标准或扩展模式; int32 baudrate:传输速率; int buffLen:数据缓冲区长度。 |
输出参数 | 无 |
全局变量值的变化 | 无 |
返回值 | CAN设备对象指针 |
函数原型 | STATUS can_get(objCan * obj) |
功能描述 | 读取CAN设备数据。 |
输入参数 | objCan * obj:CAN设备对象指针
|
输出参数 | objCan * obj:CAN设备对象指针 |
全局变量值的变化 | 无 |
返回值 | OK-成功 ERROR-失败 |
函数原型 | STATUS can_put(objCan * obj) |
功能描述 | 写入数据到CAN设备。 |
输入参数 | objCan * obj:CAN设备对象指针
|
输出参数 | objCan * obj:CAN设备对象指针 |
全局变量值的变化 | 无 |
函数原型 | STATUS can_close(objCan * obj) |
功能描述 | 关闭打开的CAN设备 |
输入参数 | objCan * obj:CAN设备对象指针
|
输出参数 | OK-成功 ERROR-失败 |
全局变量值的变化 | 无 |
无
基于API实现能够通过CAN设备收发数据的测试程序
int cantest(int argc, char **argv) {
STATUS ret = OK; int i = 0,j=0; int8 chan = 0; int error = 0; int result = PASS; uint32 baudrate = 500000; char *sendbuff; char *recvbuff; struct can_fr uint32 count = 0; objCan * pCan = NULL;
pCan = can_init(chan, 0, baudrate,1024); if(NULL == pCan) { ret |= ERR_INIT_CAN; OUT_MSG("init CAN error\n"); result= FAIL; goto QUIT; } OUT_MSG("test CAN start\n");
for(i = 0; i < count;++i) { strcpy( pCan->buff,sendbuff);/* "055#1122334455667788" */ pCan->buffRealLen=strlen(pCan->buff)+1; if (OK != can_put(pCan)) { OUT_MSG("send data to can failed.\r\n"); }
pCan->rfilter[0].can_id = fr.can_id;//set receive can ID pCan->rfilter[0].can_mask = CAN_SFF_MASK;//set receive ID mask if (OK == can_get(pCan)) {
if( !check(&fr.data[0], &pCan-> fr { OUT_MSG("%s %#x [%d] ", pCan->ifr.ifr_name,pCan-> fr for (j = 0; j < pCan->fr OUT_MSG("%#x ",pCan-> fr OUT_MSG("\n"); result = FAIL; } }else{ OUT_MSG("receive data from can failed.\r\n"); result = FAIL; }
}//end for QUIT: if(PASS == result) OUT_MSG("test CAN PASS\n"); else OUT_MSG("test CAN FAIL\n"); ret= can_close(objCan * obj); /* Return happy */ return ret; } |
无
好评率:100%
好评数量:0个
工作速度:5分
工作质量:5分
工作态度:5分
暂无评价
CPU/GPU ¥12000.00
CPU/GPU ¥25000.00
CPU/GPU ¥10000.00
CPU/GPU ¥30000.00
CPU/GPU ¥10000.00
CPU/GPU ¥15000.00
CPU/GPU ¥10000.00
CPU/GPU ¥10000.00
其他 ¥5000.00
其他 ¥5000.00
其他 ¥10000.00
其他 ¥10000.00
其他 ¥10000.00
其他 ¥10000.00
其他 ¥10000.00
其他 ¥10000.00
FPGA电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
CPU/GPU ¥10000.00
FPGA电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
FPGA电路 ¥10000.00
DSP电路 ¥10000.00
CPU/GPU ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
CPU/GPU ¥10000.00
FPGA电路 ¥10000.00
FPGA电路 ¥10000.00
模拟电路 ¥10000.00
模拟电路 ¥5000.00
模拟电路 ¥5000.00
模拟电路 ¥5000.00
模拟电路 ¥10000.00
模拟电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
FPGA电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
DSP电路 ¥10000.00
CPU/GPU ¥20000.00
CPU/GPU ¥20000.00
CPU/GPU ¥20000.00
CPU/GPU ¥20000.00
CPU/GPU ¥15000.00
CPU/GPU ¥20000.00
CPU/GPU ¥18000.00
CPU/GPU ¥20000.00
其他 ¥10000.00
其他 ¥6000.00
其他 ¥2000.00
其他 ¥3000.00
其他 ¥12000.00
其他 ¥8000.00
FPGA电路 ¥5000.00
MCU电路 ¥4800.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
嵌入式 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
MCU电路 ¥50000.00
MCU电路 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥500000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00
其他 ¥50000.00