msg.hdr = rcvedhdr;
rt_device_read(candev, 0, &msg, sizeof(msg));
2、rt_size_t rt_device_read(rt_device_t dev,
rt_off_t pos,
void *buffer,
rt_size_t size)
在candev里增加can过滤器信息
这个是如何实现?
rt_size_t rt_device_read(rt_device_t dev,
rt_off_t pos,
void *buffer,
rt_size_t size)
这里会有个新问题
就是APP设置的过滤器编号如何得到?
是设置后由驱动分配或给出?还是APP指定使用某个过滤器?
static rt_err_t lpccanind(rt_device_t dev, void *args, rt_int32_t hdr, rt_size_t size)
{
.............
return RT_EOK;
}
struct rt_can_filter_item filter1item[] =
{
LPC_CAN_AF_STD_GRP_INIT(8, 9, lpccanind, RT_NULL),
LPC_CAN_AF_STD_GRP_INIT(10, 11, lpccanind, RT_NULL),
LPC_CAN_AF_STD_GRP_INIT(6, 7, lpccanind, RT_NULL),
..................
LPC_CAN_AF_EXT_INIT(4, lpccanind, RT_NULL),
};
我尝试一下实现成socket方式试试
然并卵,每个芯片需要自己读参考手册,去设置过滤器。
手册看明白了,设置过滤器轻而易举,没看明白,有规范也白搭。
这个规范就是要对用户隐藏过滤器实现的细节,对于不同的平台,应用调用相同的接口。
我尝试一下实现成socket方式试试
双手双脚支持 我弄的canfestival就差一个好用的can接口了。
你的双手双脚都过来一起做吧 [s:175]