久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2902|回復: 5
打印 上一主題 下一主題
收起左側

有關CAN 通訊擴展幀和多ID問題求助

[復制鏈接]
跳轉到指定樓層
樓主
ID:826942 發(fā)表于 2022-4-23 10:20 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
在學習CAN的時候發(fā)現(xiàn)這個例程是用標準幀、回環(huán)模式,但是我需要改成擴展幀和多ID,看到手冊上說改IDE這個配置可以改成擴展幀,就是這個代碼   CAN_TxMessages[0].IDE     = CAN_ID_STD;    //設置為標準幀ID 此處可以改成擴展幀ID
但是除此之外還要怎么改?

  uint8_t i = 0;
    /* Init Transmit frame初始化發(fā)送幀*/
    CAN_TxMessages[0].StdId   = CAN_TX1_SID;   //標準識別符
    CAN_TxMessages[0].IDE     = CAN_ID_STD;    //設置為標準幀ID 此處可以改成擴展幀ID
    CAN_TxMessages[0].RTR     = CAN_RTRQ_DATA; //  數(shù)據(jù)幀
    CAN_TxMessages[0].DLC     = CAN_TXDLC_8;   // 數(shù)據(jù)為8
    for(i=0;i<CAN_TXDLC_8;i++)
    {
       CAN_TxMessages[0].Data[i]=CAN_Tx_Frame1_Data[i];
    }
    CAN_TxMessages[1].ExtId   = CAN_TX2_EID;//擴展幀標識符
    CAN_TxMessages[1].IDE     = CAN_ID_EXT;//設置成擴展幀
    CAN_TxMessages[1].RTR     = CAN_RTRQ_DATA;
    CAN_TxMessages[1].DLC     = CAN_TXDLC_8;
    for(i=0;i<CAN_TXDLC_8;i++)
    {
       CAN_TxMessages[1].Data[i]=CAN_Tx_Frame2_Data[i];
    }


這代碼是不是說CAN_TxMessages[0].為標準幀 而 CAN_TxMessages[1].為擴展幀?

然后要是改擴展幀的話過濾器試試不是也要改?
uint8_t Check_CANRxMessage(CanRxMessage* RxMessage)  //檢查CAN接收消息
{
        //   如果       接收消息是標準幀       與       接收消息不是發(fā)送CAN_TX1標準幀ID   或
        //              接收消息是擴展幀       與       接收消息不是發(fā)送CAN_TX2擴展幀ID
    if ( ((RxMessage->IDE == CAN_ID_STD) && (RxMessage->StdId != CAN_TX1_SID)) ||
         ((RxMessage->IDE == CAN_ID_EXT) && (RxMessage->ExtId != CAN_TX2_EID)) \
       ) return FAILED; //返回0
                //  接收消息數(shù)據(jù)幀不是發(fā)送的數(shù)據(jù)             返回0
    if ( RxMessage->RTR != CAN_RTRQ_DATA) return FAILED;
                //  接收消息數(shù)據(jù)長度不是發(fā)送的數(shù)據(jù)長度        返回0
    if ( RxMessage->DLC != CAN_TXDLC_8)   return FAILED;
    //  接收消息數(shù)據(jù)0位不是0x01         與  接收消息數(shù)據(jù)0位不是0x08       或
    if ( ( (RxMessage->Data[0] != 0x01) && (RxMessage->Data[0] != 0x08) ) ||\
         ( (RxMessage->Data[1] != 0x02) && (RxMessage->Data[1] != 0x07) ) ||\
         ( (RxMessage->Data[2] != 0x03) && (RxMessage->Data[2] != 0x06) ) ||\
         ( (RxMessage->Data[3] != 0x04) && (RxMessage->Data[3] != 0x05) ) ||\
         ( (RxMessage->Data[4] != 0x05) && (RxMessage->Data[4] != 0x04) ) ||\
         ( (RxMessage->Data[5] != 0x06) && (RxMessage->Data[5] != 0x03) ) ||\
         ( (RxMessage->Data[6] != 0x07) && (RxMessage->Data[6] != 0x02) ) ||\
         ( (RxMessage->Data[7] != 0x08) && (RxMessage->Data[7] != 0x01) ) \
        )  return FAILED;//返回0
    return PASSED;//返回1
}

就是這個函數(shù)嗎?
懇請大佬指點下 在這個例程上要改成擴展幀的話要改那幾個代碼?


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

6#
ID:826942 發(fā)表于 2022-4-24 10:50 | 只看該作者
SDDQ 發(fā)表于 2022-4-24 09:20
發(fā)送和接收都得是一樣的,發(fā)送寄存器是標準幀,接收寄存器也得是標準幀,反之同理

我也是這樣改的 但是測試的話說失敗啦
回復

使用道具 舉報

5#
ID:1013883 發(fā)表于 2022-4-24 09:20 | 只看該作者
發(fā)送和接收都得是一樣的,發(fā)送寄存器是標準幀,接收寄存器也得是標準幀,反之同理
回復

使用道具 舉報

地板
ID:573999 發(fā)表于 2022-4-24 07:10 | 只看該作者
同樣接收也可以用用戶數(shù)據(jù)處理來做邏輯實現(xiàn)的,只不過處理的數(shù)據(jù)多點
回復

使用道具 舉報

板凳
ID:573999 發(fā)表于 2022-4-24 07:08 | 只看該作者
你說的是CAN接收過濾吧,庫函數(shù)說明就有
回復

使用道具 舉報

沙發(fā)
ID:826942 發(fā)表于 2022-4-23 10:21 | 只看該作者
多ID的話該怎么配置?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人在线视频观看 | 91欧美| 综合久久av | 国产做a爱片久久毛片 | 久久精品欧美视频 | 亚洲视频在线一区 | 久久不卡 | 国产激情精品一区二区三区 | 精品欧美一区二区精品久久久 | 国产在线中文字幕 | 97精品超碰一区二区三区 | 黄色日本视频 | 噜啊噜在线 | 日本精品一区二区在线观看 | 亚洲国产精品久久久久婷婷老年 | 91xx在线观看 | 一级毛片免费看 | 99re在线视频 | 欧美一区二区三区四区在线 | 国产日韩精品在线 | 国产精品久久久久久久久久尿 | 国内激情av片 | 日韩福利视频 | 国产黄色麻豆视频 | 激情的网站 | 99re在线视频 | 香蕉视频久久久 | 九九综合 | 日日骚视频 | 日韩电影一区 | 成人国产精品久久久 | 精品日韩一区 | 99久久久无码国产精品 | 中文字幕高清av | 五月天激情综合网 | 国产一区二区三区高清 | av中文天堂 | 一区二区三区四区国产 | 国产精品精品视频一区二区三区 | 免费午夜剧场 | 国产福利在线视频 |