尊敬的 TI:
我有一个带有 AM437x 的具有 CAN 总线的系统。
我需要开发一个 C 语言代码来通过 CAN 总线发送和接收数据。
1-)使用 Linux 'ls'命令、如何验证 Linux 系统上的 CAN 接口是否可用?
2)如何使用 CAN 接口(打开、发送和接收数据...) 从 C 代码中删除。
3) 3)我需要什么库?
4) 4)是否有可用的示例?
非常感谢。
此致。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 TI:
我有一个带有 AM437x 的具有 CAN 总线的系统。
我需要开发一个 C 语言代码来通过 CAN 总线发送和接收数据。
1-)使用 Linux 'ls'命令、如何验证 Linux 系统上的 CAN 接口是否可用?
2)如何使用 CAN 接口(打开、发送和接收数据...) 从 C 代码中删除。
3) 3)我需要什么库?
4) 4)是否有可用的示例?
非常感谢。
此致。
您好!
此致、非常感谢!
关于您与我共享的链接:
我已经检查了 cansend.c 函数的参数。
我使用以下命令从 Linux 调用函数 cansend.c:sudo ./cansend.o CAN0 123#00
但我得到以下响应:1:./cansend.o:语法错误:Word Unexpected (expecting ""))
我在函数参数中有一些错误、但我不知道我做了什么错误。
问题1:
请、您是否对我的行为有任何疑问?
我还尝试了以下代码示例: github.com/.../CAN-Examples
我得到以下答复:
CAN 插座演示
写入:网络已关闭
CAN 总线为开路(总线未连接任何器件)。 但我正在使用示波器检查总线、并且没有数据、我希望在示波器上看到一些东西。
问题2:
如果总线上没有连接设备、并且正在发送数据、那么观察总线上是否没有变化是正常的?
我已查看此链接、该链接适用于不同的 MPU、 AM6442 CAN 端口-处理器论坛-处理器- TI E2E 支持论坛
如果我运行命令:sudo ip -d -s link show CAN0
我得到:
2:CAN0: MTU 16 qdisc noop state down mode default group default qlen 10
链接/ CAN 混杂0 minmtu 0 maxmtu 0
CAN 状态停止(错误计数器 TX 0 Rx 0)重新启动 ms 0
比特率1000000采样点0.750
TQ 83传播4相位段1 4相位段2 3 SJW 1
c_can:tseg1 2..16 tseg2 1..8 SJW 1..4 BRP 1.1024 BRP-inc 1.
时钟24000000
重新启动总线错误 arbit-lost error-warn error-pass bus-off
0 0 0 0 0 0 0 numtxqueue 1 GSO_max_size 65536 GSO_max_segs 65535
RX:字节数据包错误丢失溢出 mcast
0 0 0 0 0 0 0
TX:字节数据包错误丢失了载波整理
0 0 0 0 0 0 0
如果我运行命令:sudo IP link set CAN0 type can bitrate 1000000 dbitrate 4000000 fd on
我得到:RTNETLINK 回答:不允许操作
如果我运行命令:sudo ip link set CAN0 up
我得到:RTNETLINK 回答:不允许操作
问题3:
这种结果是否正常?
非常感谢。 祝你度过快乐的一天!
此致。
您好!
对延迟答复表示歉意。 我认为您使用的是 TI 文件系统、sudo 命令不在 TI 文件系统中提供、因此不需要。
要在 CANBUS 上发送数据、您需要连接 CAN 器件。 这也可以是一个 CANBUS 分析仪、它提供必要的端接、以便电信号工作、从而允许在 CANBUS 上发送消息。 SOC 的 CANBUS IP 必须认为已连接一个设备来发送消息。
此致、
Schuyler