伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度解析Air780EPM模組:LuatOS下CAN總線通信的完整方案!

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2025-05-06 14:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文聚焦Air780EPM的CAN通信能力,結合LuatOS實時操作系統,從底層驅動到應用層協議,詳細拆解如何實現工業級CAN總線數據傳輸,助力開發者快速落地項目。

最新資料詳見:https://docs.openluat.com/air780epm/luatos/api/core/can/

一、Can操作庫常量定義

1.1 CAN工作模式常量

can.MODE_NORMAL:

正常工作模式;

can.MODE_LISTEN:

監聽模式(僅接收,不發送);

can.MODE_TEST:

自測模式(自收自發);

can.MODE_SLEEP:

休眠模式。

1.2 CAN狀態常量

can.STATE_STOP:

停止工作狀態;

can.STATE_ACTIVE:

主動錯誤狀態(一般情況下為該狀態);

can.STATE_PASSIVE:

被動錯誤狀態(總線上錯誤較多時進入,但仍可正常收發);

can.STATE_BUSOFF:

離線狀態(總線錯誤非常多,不能收發,需手動退出);

can.STATE_LISTEN:

監聽狀態(選擇監聽模式時進入);

can.STATE_TEST:

自收自發狀態(選擇自測模式時進入);

can.STATE_SLEEP:

休眠狀態(選擇休眠模式時進入)。

1.3 回調消息類型常量

can.CB_MSG:

有新數據寫入緩存;

can.CB_TX:

數據發送完成(需通過param判斷成功/失敗);

can.CB_ERR:

錯誤報告(param為錯誤碼);

can.CB_STATE:

總線狀態變更,后續param參數是新的狀態,也可以用can.state讀出。

1.4 幀格式常量

can.EXT:擴展幀;

can.STD:標準幀。

二、Can操作庫API函數

wKgZO2gRubeAQdadAAi5_7cGeh4708.png

2.1 初始化與配置

1)初始化CAN總線

can.init(id, rx_message_cache_max)

參數:

id:總線ID(0表示can0,1表示can1,通常默認為0)。

rx_message_cache_max:接收緩存消息數最大值(默認使用平臺值)。

返回值:boolean(成功返回true,失敗返回false)。

示例:

wKgZO2gRufeAQgXYAABNDLe5yuQ955.png

2)配置CAN總線的波特率及時序參數

can.timing(id, br, PTS, PBS1, PBS2, SJW)

參數:

id:總線ID。

br:波特率(默認1Mbps)。

PTS:

傳播時間段(范圍1~8,默認5)。

PBS1:

相位緩沖段1(范圍1~8,默認4)。

PBS2:

相位緩沖段2(范圍2~8,默認3)。

SJW:

同步補償寬度(范圍1~4,默認2)。

返回值:boolean。

示例:

wKgZPGgRujyACaIsAABSbqIDDqo119.png

3)設置CAN總線工作模式

can.mode(id, mode)

參數:

id:總線ID。

mode:

模式常量(如 can.MODE_NORMAL)。

返回值:boolean。

示例:

wKgZPGgRumOAdFSPAABMWd0g-8Q844.png

4)設置消息過濾規則

can.filter(id, dual_mode, ACR, AMR)

參數:

id:總線ID。

dual_mode:是否啟用雙濾波模式。

ACR:接受代碼寄存器(過濾 ID 值)。

AMR:接受掩碼寄存器(掩碼值)。

返回值:boolean。

注意:具體實現依賴硬件特性。

5)設置CAN節點ID及類型can.node(id, node_id, id_type)

參數:

id:總線ID。

node_id:節點 ID。

id_type:ID 類型(can.EXT或can.STD)。

返回值:boolean。

示例:

wKgZO2gRupeAI3mCAABNo0Bwtiw035.png

2.2 數據與收發

1)發送CAN消息

can.tx(id, msg_id, id_type, RTR, need_ack, data)

參數:

id:總線ID。

msg_id:消息ID。

id_type:

幀類型(can.EXT 或 can.STD)。

RTR:

是否為遠程傳輸請求(true/false)。

need_ack:

是否需要應答(true/false)。

data:

數據(數組,如 {0x01, 0x02})。

返回值:無。

示例:

wKgZO2gRusyARjpWAABIg2VwJu0252.png

2)接收CAN消息

can.rx(id)

參數:id:總線ID。

返回值:消息數據(如 {id=0x123, data={0x01, 0x02}})。

示例:

wKgZO2gRuvmAYkeRAABZA62SthM866.png

2.3 狀態與事件

1)注冊事件回調函數

can.on(id, func)

參數:

id:總線ID。

func:回調函數(參數:id, type, param)。

示例:

wKgZO2gRuzCAbviwAADOxJdoVwI511.png

2)獲取當前總線狀態

can.state(id)

參數:id:總線ID。

返回值:狀態常量(如 can.STATE_ACTIVE)。

3)停止指定總線can.stop(id)

參數:id:總線ID。

4)重置總線(恢復默認配置)can.reset(id)

參數:id:總線ID。

5)反初始化總線can.deinit(id)

參數:id:總線ID。

6)啟用/禁用調試信息輸出can.debug(on_off)

參數:on_off(布爾值)。

三、CAN開發相關注意事項

3.1 初始化順序

wKgZPGgRu6GAYfS9AACmhO3XfNE642.png

3.2 消息發送與接收

使用can.tx發送消息,確保參數正確;通過can.rx拉取消息,或在回調中處理can.CB_MSG。

3.3 狀態監控

定期檢查can.state,處理離線狀態(can.STATE_BUSOFF);錯誤回調can.CB_ERR,需記錄param錯誤碼。

3.4 調試與性能

啟用can.debug(true) 輸出底層日志;接收緩存rx_message_cache_max需根據需求調整,避免消息丟失。

3.5 常見問題

如何解決can.STATE_BUSOFF離線狀態?

需先調用can.reset(id)恢復總線,再重新初始化配置。

如何確保消息發送成功?

通過can.CB_TX回調判斷發送結果,或檢查返回值(若API支持)。

如何處理高頻率消息接收?

增大rx_message_cache_max,或在回調中及時處理消息。

wKgZPGgRu_uAF6U9AAZu0-Z2mm8812.pngwKgZPGgRvAyAZ3ngAAIqztab9BY129.png

更多最新開發資料詳見:www.air780epm.cn

今天的內容就分享到這里了~

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN通信
    +關注

    關注

    5

    文章

    105

    瀏覽量

    18930
  • 總線通信
    +關注

    關注

    0

    文章

    65

    瀏覽量

    12249
  • LuatOS
    +關注

    關注

    0

    文章

    163

    瀏覽量

    2728
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LuatOS選型指南:基于Air780EPM的32/64位性能實測分析

    面對32位與64位LuatOS固件的選擇難題,本文通過在Air780EPM開發板上的實際測試,詳細解析兩者在整數處理能力、浮點數精度以及系統性能方面的差異,結合應用場景給出專業建議,助力開發者實現
    的頭像 發表于 02-25 18:05 ?214次閱讀
    <b class='flag-5'>LuatOS</b>選型指南:基于<b class='flag-5'>Air780EPM</b>的32/64位性能實測分析

    一文搞懂Air780EPM的NTP通信LuatOS腳本開發教程

    ?想在Air780EPM上用LuatOS實現NTP時間同步?這篇教程將用最通俗的方式講解實現原理與代碼實現,讓你快速掌握關鍵技能。 一、NTP通信概述 ? 1.1 NTP 網絡時間協議(英語
    的頭像 發表于 09-30 18:19 ?2281次閱讀
    一文搞懂<b class='flag-5'>Air780EPM</b>的NTP<b class='flag-5'>通信</b>:<b class='flag-5'>LuatOS</b>腳本開發教程

    Air780EPM嵌入式開發:LuatOS的MQTT通信實踐

    通過LuatOS腳本在Air780EPM開發板上實現MQTT通信,是物聯網設備開發中高效且便捷的解決方案。 一、MQTT 協議詳解 ? 1.1 什么是 MQTT? MQTT(Messa
    的頭像 發表于 09-30 16:11 ?1938次閱讀
    <b class='flag-5'>Air780EPM</b>嵌入式開發:<b class='flag-5'>LuatOS</b><b class='flag-5'>下</b>的MQTT<b class='flag-5'>通信</b>實踐

    實戰Air780EPM:構建4G共享網關,服務WiFi與有線設備!

    通過多網融合技術將不同類型的通信網絡(4G、以太網)整合在一起,從而形成統一、高效、互操作性強的網絡系統。 本文基于 Air780EPM 模塊,通過 4G 移動網絡為 以太網設備提供統一的上網接入服務
    的頭像 發表于 09-30 16:03 ?1393次閱讀
    實戰<b class='flag-5'>Air780EPM</b>:構建4G共享網關,服務WiFi與有線設備!

    Air780EPM開發板NTP對時教程:LuatOS腳本開發入門指南

    通過簡單的LuatOS腳本,Air780EPM即可實現NTP時間同步。本指南從零開始,帶你掌握嵌入式設備聯網校時的核心方法。 一、NTP通信概述 1.1 NTP 網絡時間協議(英語:Network
    的頭像 發表于 09-30 16:01 ?1255次閱讀
    <b class='flag-5'>Air780EPM</b>開發板NTP對時教程:<b class='flag-5'>LuatOS</b>腳本開發入門指南

    LuatOS嵌入式開發實戰:Air780EPM與MQTT通信

    ?本教程聚焦于LuatOSAir780EPM開發板上的應用,演示如何通過腳本實現MQTT協議通信,助力物聯網設備快速聯網。 一、MQTT 協議詳解 ? 1.1 什么是 MQTT? MQTT
    的頭像 發表于 09-29 18:10 ?598次閱讀
    <b class='flag-5'>LuatOS</b>嵌入式開發實戰:<b class='flag-5'>Air780EPM</b>與MQTT<b class='flag-5'>通信</b>

    Air780EPM開發板FTP功能實戰:LuatOS嵌入式開發全解析

    本文深入講解Air780EPM模組LuatOS環境的FTP應用開發,涵蓋AT指令配置、網絡連接與文件傳輸流程,助你高效完成嵌入式通信項目
    的頭像 發表于 09-29 15:37 ?571次閱讀
    <b class='flag-5'>Air780EPM</b>開發板FTP功能實戰:<b class='flag-5'>LuatOS</b>嵌入式開發全<b class='flag-5'>解析</b>

    LuatOS Air780EPM 開發板 HTTP 教程:原理講解與項目實操!

    本篇教程將系統介紹 LuatOS Air780EPM 在 HTTP 通信中的應用,從請求機制到響應解析,配合完整代碼演示,讓你輕松實現設備端
    的頭像 發表于 09-26 20:36 ?1118次閱讀
    <b class='flag-5'>LuatOS</b> <b class='flag-5'>Air780EPM</b> 開發板 HTTP 教程:原理講解與項目實操!

    Air8101多網融合戰略升級:Air780EPM模塊助力4G聯網落地

    在物聯網通信技術持續迭代的背景Air8101通過戰略級模塊外掛——Air780EPM,正式邁入4G聯網時代。多網融合架構的完善,使設備在復雜環境中仍能保持高速、穩定的數據傳輸性能,
    的頭像 發表于 06-23 16:53 ?609次閱讀
    <b class='flag-5'>Air</b>8101多網融合戰略升級:<b class='flag-5'>Air780EPM</b>模塊助力4G聯網落地

    優化你的設計:Air780EPM場景化ADC硬件電路指南!

    提升ADC性能需從場景需求出發。本文針對Air780EPM在數據采集中的常見挑戰,如噪聲抑制、動態范圍適配等,提供場景化的優化方案與電路設計建議,助力打造高性價比的硬件系統。 最近有工程師朋友問
    的頭像 發表于 06-13 18:02 ?998次閱讀
    優化你的設計:<b class='flag-5'>Air780EPM</b>場景化ADC硬件電路指南!

    Air780EPM — ADC硬件電路設計:場景化優化與實踐!

    不同應用場景對ADC電路的要求差異明顯,Air780EPM的設計需針對性優化。本文通過實例解析電源濾波、信號隔離等關鍵技術,闡述如何根據具體場景需求打造高性能的硬件電路方案。 最近有工程師朋友問
    的頭像 發表于 06-11 14:40 ?752次閱讀
    <b class='flag-5'>Air780EPM</b> — ADC硬件電路設計:場景化優化與實踐!

    解鎖Air780EPM:N種GPIO操控LED的實戰技巧!

    在物聯網項目中,靈活使用Air780EPM的GPIO控制LED至關重要。本文將展示實現方式,涵蓋硬件配置與軟件編程,滿足不同場景需求。 今天特別分享基于Air780EPM的GPIO控制LED實現方案
    的頭像 發表于 05-28 16:56 ?981次閱讀
    解鎖<b class='flag-5'>Air780EPM</b>:N種GPIO操控LED的實戰技巧!

    COD監測革新!Air780EPM一站式替代STM32+4G模組的物聯網方案 ~

    通過將4G通信、COD數據處理與低功耗控制集成于Air780EPM芯片,本方案徹底顛覆STM32+外置模組的松散架構。實測顯示,設備啟動時間從STM32
    的頭像 發表于 05-21 16:51 ?641次閱讀
    COD監測革新!<b class='flag-5'>Air780EPM</b>一站式替代STM32+4G<b class='flag-5'>模組</b>的物聯網<b class='flag-5'>方案</b> ~

    如何解決Air780EPM開發中的調試難題?深度解析高效調試方法

    Air780EPM項目開發中,調試效率往往直接影響進度。面對代碼報錯、邏輯漏洞等常見痛點,開發者亟需一套系統化的方法論。本文將揭秘實戰中驗證的調試技巧,助您快速定位問題并優化代碼流程。
    的頭像 發表于 05-17 10:46 ?825次閱讀
    如何解決<b class='flag-5'>Air780EPM</b>開發中的調試難題?<b class='flag-5'>深度</b><b class='flag-5'>解析</b>高效調試方法

    大公開!用Air780EPM重構水質COD監測,替代STM32+4G模組的技術路徑

    方案采用Air780EPM單芯片替代STM32+4G模組,集成COD傳感器驅動、數據加密與4G通信功能。 水質COD(化學需氧量)監控是評估水體有機污染程度的核心手段,涉及多種技術、
    的頭像 發表于 05-16 15:34 ?713次閱讀
    大公開!用<b class='flag-5'>Air780EPM</b>重構水質COD監測,替代STM32+4G<b class='flag-5'>模組</b>的技術路徑