我正在编写自己的CANOpen堆栈,并希望使用C实现SDO服务器。CiA CANOpen应用层文档指定SDO请求和确认帧如下所示:

并给出了如下解释:

根据我对这张图片的解码,我猜我应该在SDO确认帧中发送8个字节,但这7个字节将只包含0。
这是正确的吗?
PS:如果图片不清晰,很抱歉。
发布于 2020-09-20 07:00:27
几乎是正确的。SDO CAN帧始终包含8个字节,其中未使用的字节为0。
然而,确认帧具有4个非零字节。第一个字节是命令说明符(本例中为0x60)。接下来的三个是“多路复用器”:两个字节用于对象索引(little-endian),一个字节用于子索引。
https://stackoverflow.com/questions/63892656
复制相似问题