找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

ifconfig can0 up无法启动nuc972的can。

[复制链接]
跳转到指定楼层
楼主
any012 发表于 2020-4-18 16:38:20 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
自己做的板子,用的can1,管脚是ph14,ph15。
命令行里输入ifconfig can0 up后,打不开can。


  1. root@nuc972 /# ifconfig can0 up                                                                              
  2. nuc970-can1 nuc970-can1 can0: bit-timing not yet defined                                                     
  3. nuc970-can1 nuc970-can1 can0: failed to open can device                                                      
  4. ifconfig: SIOCSIFFLAGS: Invalid argument

复制代码


使用 ip link set can0 type can bitrate 125000 设置速率,结果也不成功。


  1. root@nuc972 /# ip link set can0 type can bitrate 125000                                                      
  2. ip: either "dev" is duplicate, or "type" is garbage  

复制代码


但是ifconfig -a倒是可以看到有can0,不过好奇为什么是can0?我硬件上用的是can1啊?

  1. root@nuc972 /# ifconfig -a                                                                                   
  2. can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00                          
  3.           NOARP  MTU:16  Metric:1                                                                           
  4.           RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                
  5.           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                               
  6.           collisions:0 txqueuelen:10                                                                        
  7.           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)                                                            
  8.           Interrupt:59  

  9. 。。。
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
 楼主| any012 发表于 2020-5-21 11:59:45 | 显示全部楼层
我没有自己移植qt,用的buildroot构建的带qt5.6的文件系统。
之前尝试过移植qt最新版,可好像和gcc版本有关,gcc版本又和内核版本有关...于是放弃了。

虽然用Ip link命令设置波特率及打开can口成功,在qt里用qCanBusDevice的socketcan插件,可以正常发送,但是无法接收。查看qtserialbus源码,发现qt5.6好像不支持有些命令。
最后,还是用新塘官方例程里的c函数。打开及发送好说,接收有点麻烦,是新开了个线程,不停地接收。
回复 支持 反对

使用道具 举报

板凳
 楼主| any012 发表于 2023-2-7 10:26:57 | 显示全部楼层
游客 116.24.66.x 发表于 2020-6-29 09:00
请问你用的是带C后缀的芯片么

是带C后缀的芯片。

现在是在qt程序中用system(ip link set can0 type can bitrate 500000);  system(ifconfig can0 up);来实现打开can及设置波特率的。接收发送用socketcan.
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU