當前位置:首頁 » 操作系統 » linux串口發送

linux串口發送

發布時間: 2023-03-05 08:05:54

linux串口相關的操作及綁定

@ toc

可在控制台輸入

也可以用stty設置串口參數

使用後相當於串口回傳,發什麼回什麼

發送數據

可以對串口發送數據比如對com1口

一般情況下串口的名稱全部在dev下面,如果你沒有外插串口卡的話默認是dev下的ttyS* ,一般ttyS0對應com1,ttyS1對應com2,當然也不一定是必然的;

如果有ttyS設備,再看/dev/有沒有ttyS*,如沒有就建立一個:

如果板子的設備中沒有標准串口設備ttyS0,也沒有ttySAC0。/dev下應該有一個USB串口:/dev/ttyUSB0.

當一個串列卡或數據卡被偵測到時,它會被指定成為第一個可用的串列設備。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2),這完成看原已內建的串口數目。ttyS*設備會被報告在/var/run/stab內。

PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC

可能是linux下的串口設備沒有打開,需要改變串口設備
的許可權,或者根據文章頭添加用戶到組處理

可以通過以下命令 查看 板子上的硬體埠的內核設備名

該條命令會將 ttyUSB0所對應的硬體埠的kernel設備名 顯現出來, 得到KERNEL== '1-5.5.4', 而不是之前的ttyUSB0

cmd.sh如下:

./getUSB.py 調用當前路徑下的getUSB.py這個Python語言,明確此次是哪個,ttyUSB0,或者ttyUSB1掛載在埠3-1.1上

getUSB.py:

完成之後 ,設置開機啟動cmd.sh(在/etc/rc.local中設置)則每次開機之後,會從/dev/ttydata獲取到固定埠的數據

方式一

寫入內容如下:

方式二

我的硬體序列號:ATTRS{serial}=="FTSYWCXZ"這個號是唯一的

可以通過/dev/usb_0打開串口設備

常用的匹配類型:

⑵ 如何在linux下調試串口,發送十六進制數據

串口發送的數據是8位的,最大為255,就是FF,如果要發送大於255的數,必須變成幾個位元組發送,例如要發送十進制2315,就要將數據拆分 data(0)=2315/256; data(1)=2315%256; 這樣就拆分開數據,再將數據發送出去。

⑶ linux c 串口 收發數據

1、接受數據一般是阻塞,就是沒有接收到數據就一直等待,可以設置為不阻塞,這樣就可以了

2、另一種方法是,創建線程,一收、一發,就可以互不影響

⑷ 請教,怎麼向linux下串口發送16進制數比如0xFA之類的

在程序中打開你的串口設備,int fd; fd = open("/dev/ttyS1",O_RDWD);
比如你要發送0x01,0x02,0x03,0x04,
char buf[256]={0x01,0x02,0x03,0x04};
write(fd,buf,4);
直接往你的串口寫四個位元組的數就可以了,在你的另一個程序中讀取你往串口寫的那幾個數,十六進制列印出來就可以了。

⑸ 求助:Linux下C語言如何向串口發送16進制數據

Linux特點是所有都是文件

包括串口設備

首先 找到你串口對應的設備 一般是 /dev/ttyS1

當然 也可能是別的 需要你自己確認硬體。

然後比如你要發送0x01,0x02,0x03,0x04,

intfd;fd=open("/dev/ttyS1",O_RDWD);

charbuf[256]={0x01,0x02,0x03,0x04};
write(fd,buf,4);
close(fd);

這樣就可以了。

⑹ linux串口收到數據和windows串口收到的不一樣

你好,中文亂碼的話,注意接收後可能需要編碼轉換,比如GB2312,utf8,unicode這幾種編碼格式的轉換

如果不是中文的話,可以按照下面方式進行檢查

1、具體檢查方法,將linux中的發送和接受進行短接(就是將發送和接受連起來),看看接受的數據是否相同。

這一步中,因為使用的是同一個串口,所以串口的設置一定是相同的。這樣如果都收不正確,可以確定是linux串口驅動的問題。

2、詳細設置linux串口的參數,包括波特率,校驗,串口位數。將linux和單片機設置相同,看看接受數據是否相同

如果還是不相同。

3、在windows中使用串口調試助手設置同單片機串口相同的參數,查看接受數據是否正確。

如果不正確,說明是單片機串口參數設置的問題,或者是時鍾頻率的問題。

如果正確,說明一定是linux端的問題。

如果是linux端的問題,主要從兩個方面解決,一個是參數設置,一個是信息讀取。下面是測試方法。

4linux端查看一下代碼設置。利用驅動介面,讀出串口的參數,看看和你程序中設置的參數是否相同,如果不相同說明設置參數的代碼沒寫對。

5如果參數設置是正確的,那麼直接cat 驅動的位置,可以直接讀出串口的數據,此時讀取的數據應該是和發送端一樣的,如若不一樣。。。。那麼基本就是linux時鍾的問題導致的了。若linux是PC上的一般不會出現時鍾設置錯誤,如果linux是嵌入式上的話,你看看時鍾配置是否正確吧

熱點內容
怎樣讓隱藏文件夾顯示 發布:2025-08-20 16:03:37 瀏覽:35
如何辨別密碼箱密碼鎖壞了 發布:2025-08-20 16:02:47 瀏覽:969
河池都安伺服器ip地址是什麼 發布:2025-08-20 16:00:13 瀏覽:873
做自媒體剪輯需要什麼配置的電腦 發布:2025-08-20 15:37:38 瀏覽:388
密碼法的立法目地是什麼 發布:2025-08-20 15:27:13 瀏覽:456
不小心刪除微信怎麼恢復聊天記錄安卓 發布:2025-08-20 15:27:05 瀏覽:449
車載安卓系統指的是什麼 發布:2025-08-20 15:23:47 瀏覽:713
安徽鯤鵬伺服器雲空間 發布:2025-08-20 15:19:37 瀏覽:790
怎樣刪除手機大存儲 發布:2025-08-20 15:10:36 瀏覽:270
android關閉 發布:2025-08-20 15:09:44 瀏覽:61