找回密码
 立即注册
查看: 256|回复: 8

STC官方能提供个远程帧的例程吗?

[复制链接]
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    103

    回帖

    216

    积分

    中级会员

    积分
    216
    发表于 2024-3-1 11:24:52 | 显示全部楼层 |阅读模式
    本帖最后由 newlined 于 2024-3-1 11:55 编辑

    贵司各位大佬好,官网有关CAN的例程里没有关于远程帧的例程,最近在做一个东西,希望对各个节点名,看看有几个节点接入,好像用远程帧的方式比较好?能否提供一个。再就是在这里顺便请教下,数据帧中,起始位后的ID应该是发送方的ID,在远程帧中,起始位后的ID是不是接收方的ID?谢谢。
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    103

    回帖

    216

    积分

    中级会员

    积分
    216
     楼主| 发表于 2024-3-1 11:38:37 | 显示全部楼层
    也许远程帧的例程比较简单?把以前的例程中数据帧改为远程帧即可?这样这个节点发出远程帧后,那个节点收到后会立即发出数据帧?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-4-23 08:28
  • 签到天数: 42 天

    [LV.5]常住居民I

    14

    主题

    54

    回帖

    390

    积分

    中级会员

    积分
    390
    发表于 2024-3-2 22:37:52 | 显示全部楼层
    是不是改例程中这个地方?
    截图202403022237371341.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1337

    回帖

    4159

    积分

    论坛元老

    积分
    4159
    发表于 2024-3-3 09:49:24 | 显示全部楼层
    远程帧是CAN通信中的一种帧类型,它与数据帧存在一些差异。
    远程帧由目标节点发送,用于请求源节点发送特定的数据帧。
    以下是远程帧的几个关键特点:

    1. 远程帧的RTR位为隐性状态,这是与数据帧的一个主要区别,

        数据帧的RTR位为显性状态。
    2. 远程帧没有数据字段,它只包含必要的控制信息,

        如帧起始、仲裁场、控制场、CRC场、应答场和帧结束。
    3. 远程帧发送时会指定一个特定的CAN ID,当源节点接收到这个ID的远程帧后,

        它会发送一个包含相同ID的数据帧以响应远程帧请求。
        当远程帧和带有相同ID的数据帧同时发出时,由于数据帧的RTR位为显性,

        数据帧将赢得仲裁,从而源节点会发送所需的数据帧。
        这样,发送远程帧的节点能够立即收到所需的数据。


        发送远程帧时将RTR=1,DLC=0,CAN ID=目标节点ID。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    103

    回帖

    216

    积分

    中级会员

    积分
    216
     楼主| 发表于 2024-3-4 08:34:56 | 显示全部楼层
    乘风飞扬 发表于 2024-3-3 09:49
    远程帧是CAN通信中的一种帧类型,它与数据帧存在一些差异。
    远程帧由目标节点发送,用于请求源节点发送特定 ...

    谢谢乘风老师您的回复,我还有一个疑问,向你请教,假设节点A发出了一个远程帧,这个远程帧中的ID是B节点的,B节点收到后,它是立即通过CAN管理器发出一个带有自己节点ID的数据帧,当然这个数据帧中的数据要提前准备好,还是程序编写者写一段程序:判断是否收到远程帧?收到远程帧后,我要发送哪些数据?数据准备好后,再启动发送程序?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1337

    回帖

    4159

    积分

    论坛元老

    积分
    4159
    发表于 2024-3-4 09:00:54 | 显示全部楼层
    newlined 发表于 2024-3-4 08:34
    谢谢乘风老师您的回复,我还有一个疑问,向你请教,假设节点A发出了一个远程帧,这个远程帧中的ID是B节点 ...

    编程判断收到自己ID的远程帧后,发送本节点需要发的数据帧。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    103

    回帖

    216

    积分

    中级会员

    积分
    216
     楼主| 发表于 2024-3-4 09:08:33 | 显示全部楼层
    乘风飞扬 发表于 2024-3-4 09:00
    编程判断收到自己ID的远程帧后,发送本节点需要发的数据帧。

    明白了,谢谢您的回复,当节点B收到一个帧,这个帧中的ID是自己的,他就知道需要发出一个一个数据帧,编程者把需要发出的数据放到数据帧的数据字段,发出即可。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    20

    主题

    103

    回帖

    216

    积分

    中级会员

    积分
    216
     楼主| 发表于 2024-3-4 09:28:07 | 显示全部楼层
    QW123 发表于 2024-3-2 22:37
    是不是改例程中这个地方?

    我不知道您看的是那个例程,看语句应该是表明要发出哪个类型的帧,应该可以,我是看的这个例程:




            CAN1_Tx.FF = STANDARD_FRAME;    //标准帧
            CAN1_Tx.RTR = 0;                //0:数据帧,1:远程帧
            CAN1_Tx.DLC = 0x01;             //数据长度
            CAN1_Tx.ID = 0x0345;            //CAN ID
            CAN1_Tx.DataBuffer[0] = 0x11;   //数据内容
            CAN1_Tx.DataBuffer[1] = 0x12;
            CAN1_Tx.DataBuffer[2] = 0x13;
            CAN1_Tx.DataBuffer[3] = 0x14;
            CAN1_Tx.DataBuffer[4] = 0x15;
            CAN1_Tx.DataBuffer[5] = 0x16;
            CAN1_Tx.DataBuffer[6] = 0x17;
            CAN1_Tx.DataBuffer[7] = 0x18;



    修改        《CAN1_Tx.RTR = 0;                //0:数据帧,1:远程帧 》
    这一句应该可以,我还没有实际试试。



    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-4-23 08:28
  • 签到天数: 42 天

    [LV.5]常住居民I

    14

    主题

    54

    回帖

    390

    积分

    中级会员

    积分
    390
    发表于 2024-3-4 09:54:10 | 显示全部楼层
    newlined 发表于 2024-3-4 09:28
    我不知道您看的是那个例程,看语句应该是表明要发出哪个类型的帧,应该可以,我是看的这个例程:

    应该是你这段修改,我看的例子应该和你一样,只是我刚好找到底层去了, 现在想想,我找到的那一段,没啥移植要求可能不能去动,
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-14 19:15 , Processed in 0.069046 second(s), 63 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表