2703|0

86

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Linux下CAN驱动问题(HMs30c7202) c_candrv-1.2.0 [复制链接]

目前接手一项目,头有点大,CAN在运行过程中,会出现不能收发的情况,从新上电后正常
使用的是c_candrv-1.2.0驱动程序,个人感觉可能是使用方法不对

  1. #define can0file "/dev/can0"
  2. #define can1file "/dev/can1"
  3. #define can2file "/dev/can2"
  4. #define can3file "/dev/can3"

  5. /*CAN初始化*/
  6. void initcan(void)
  7. {
  8.     int counts = 0;
  9.    
  10.     do {
  11.         if ((can0_sndid  =  open(can0file, O_WRONLY))<0) {
  12.             counts++;
  13.         } else break;
  14.     } while (counts < 10);
  15.     counts = 0;
  16.    
  17.     do {
  18.         if ((can0_rcvid  =  open(can1file, O_RDONLY))<0) {
  19.             counts++;
  20.         } else break;
  21.     } while (counts < 10);
  22.     counts = 0;

  23.     do {
  24.         if ((can1_sndid  =  open(can2file, O_RDWR))<0) {
  25.             counts++;
  26.         } else break;
  27.     } while (counts < 10);
  28.     counts = 0;

  29.     do {
  30.         if ((can1_rcvid  =  open(can3file, O_RDWR))<0) {
  31.             counts++;
  32.         } else break;
  33.     } while (counts < 10);
  34. }

  35. void * thread_com_can0(void *arg)
  36. {
  37.     int count = 0;
  38.    
  39.     while (ioctl( can0_rcvid, IOCTL_CAN_SET_READ_MODE, 0 ) < 0) {
  40.         count++;
  41.         if (count > 100) break;
  42.     }
  43.     count = 0;
  44.     while (ioctl( can0_rcvid, IOCTL_CAN_SET_FILTER, 0) < 0) {
  45.         count++;
  46.         if (count > 100) break;
  47.     }
  48.     .....//应用程序
  49. }

复制代码

看完c_candrv-1.2.0的 readme后,觉得IOCTL_CAN_SET_FILTER应该是设置验收滤波器的参数啊
应用程序中不管什么节点的数据都需要接收,是不是根本不需要设置IOCTL_CAN_SET_READ_MODE和IOCTL_CAN_SET_FILTER
这种initcan会不会存在问题,为什么can会down掉,有时能发不能收,有时既不能发也不能收,重新上电后又正常了!
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表