簡單的CAN收發

2021-09-02 00:22:42 字數 900 閱讀 1974

我只是想用c實現乙個簡單的收發, 但是卻花費了很多時間, 此文記錄一些要點.

驅動的安裝

按照官網給的驅動進行安裝, 要注意

作業系統和kernel的版本要和手冊中的一致

記得賦予埠許可權.

原始碼

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

inttransmit

(canmsg_t tx)

tx.flags = msg_ext;

//如果不加的話, 接收端的data值會錯誤.

write

(fd,

&tx,1)

;//寫1幀

printf

("write down\n");

usleep

(1000);

close

(fd)

;return1;

}int

receive

(canmsg_t *_rx)

測試函式就不寫了.

要注意的幾點:

傳送幀如果沒有flags引數, 則接受幀的data會錯誤. 但是length,id等引數是正確的.

在receive函式中, 別忘記memcpy. 不然函式結束後, 區域性記憶體失效, 只是傳出去乙個指標, 外部得到的結果自然亂碼.

要在write後延遲一段時間再關閉檔案, 否則收不到.

這裡有用swig對python的封裝, 但是我沒有跑通.

這裡我認為是乙個大的框架, 但是不能支援我的裝置.

簡訊的收發簡單Demo

簡訊的傳送 傳送簡訊相當的簡單,只需要幾行 如下 引數phonenumber和msgstr均是string型別,表示接收方的 號碼和簡訊內容 smsmanager sms smsmanager.getdefault pendingintent pi pendingintent.getbroadcas...

CAN匯流排簡單介紹

keywords 區域網,現場匯流排,序列通訊 一句話描述,can匯流排因其高效能和可靠性強,廣泛應用於汽車產業,醫療裝置,船舶 一 can匯流排是什麼?can是控制器區域網路 controller area network,can 的簡稱,是由以研發和生產汽車電子產品著稱的德國bosch公司開發的...

STM32 CAN 配置 收發結構定義 留存

分布式系統專案需要,這次弄個can匯流排來布局,僅見can的冰山一角。本次使用擴充套件幀模式。stm32 對can的定義 庫 can結構體定義 說明 typedef struct can typedef can訊息傳送 can tx message structure definition type...