LinuxでのUARTシリアルポート関連

RS232 シリアル デバイスは、 Linux では/dev/ttyS * またはttymxc *として認識されます。

1. シリアルポートの概要

シリアル ポートを操作するには、通常、次のコマンドを使用します。

1. シリアル ポートのボー レートとその他の情報を確認します。

stty -F /dev/ttyS0 -a  #ttyS0为要查看的串口 

2. シリアル ポートのパラメータを設定します。

stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs8 

このコマンドは、シリアル ポート 1 (/dev/ttyS0) を 115200 ボー レート、8 ビット データ モードに設定します。
通常、これら 2 つのパラメータを設定するだけで十分です。データが文字化けする場合は、他のパラメータの設定が必要になる場合があります。stty のその他の設定オプションを表示するには、man を使用します。

1、显示某个串口参数信息:stty -F /dev/ttySTM6  -a
        
2、设置某个串口参数信息:
 
    2.1      7位数据位,无校验,1位停止位,无回显
 
       stty -F /dev/ttySTM6 speed 115200 cs7 -parenb -cstopb  -echo
        
    2.2     串口ttySTM6 波特率为115200,8位数据位,1位停止位,偶数校验位
  
       stty -F /dev/ttyS0 speed 115200 cs8 -cstopb parenb -parodd
 
3、串口发送数据:echo "1234456"  >  /dev/ttySTM6
 
4、显示串口接收数据:cat /dev/ttySTM6 &(后台)
 
5、stty命令功能参数
 
   5.1 校验位
    parenb:使终端进行奇偶校验,-parenb则是禁止校验;
    -parodd 偶数校验
    parodd 奇数校验  
 
   5.2 数据位
    cs5、cs6、cs7和cs8分别将字符大小设为5、6、7和8比特;
 
   5.3 波特率
    speed 波特率:设置波特率 
 
   5.4 停止位
    cstopb和-cstopb分别设置两个或一个停止位;

3. シリアル ポートで受信したデータを表示します。

cat /dev/ttyS0 

4. シリアル ポートで受信したデータを 16 進数で表示します。

hexdump -C /dev/ttyO1

5. データをシリアル ポートに送信します。

echo "111111" > /dev/ttyS0

2. シリアルポートテスト

テストには、virtualbox 仮想マシンと仮想シリアル ポート ツール VPSD (仮想シリアル ポート ドライバーの構成) を使用できます。参考
: https://blog.csdn.net/zxw1473474655/article/details/126102955

1. まず VPSD を使用して 2 つのシリアル ポートを仮想化します

ここに画像の説明を挿入
ここに画像の説明を挿入

2. 仮想マシンはシリアル ポートも構成します

ここに画像の説明を挿入
パスのシリアル ポート名は Windows 上のものと同じにする必要があり、構成後に仮想マシンを開きます。

3. コンピュータに独自のシリアル ポートがあるかどうかを確認するには、次のコマンドを使用します。
sudo cat /proc/tty/driver/serial

tx のオプション、rx は実際のシリアル ポート、0 は ttyS0 に対応し、一般に ttyS0 はウィンドウの下の COM1 に対応します。実際のシリアル ポートに応じて、ttyS0 または ttyS1 を使用してテストします。

ここに画像の説明を挿入
ここに画像の説明を挿入

4. Windows のシリアル ポート ツールと Linux でのシリアル ポート通信を使用します。

Linux での ttyS0 のデフォルトのボーレートは 9600 で、Windows の COM1 に対応します。

ここに画像の説明を挿入

VPSD によって仮想化されたシリアル ポート com1 と com2 が接続されています。つまり、データは com1 に送信され、com2 は受信します。

Linux で ttyS0 シリアル ポートを開き、データを待ちます

cat /dev/ttyS0

勝利時にデータを送信する

ここに画像の説明を挿入

シリアルポートはLinux環境でデータを受信します

ここに画像の説明を挿入

Linux で ttyS0 を構成する

#串口ttySTM6 波特率为9600,8位数据位,1位停止位,无校验位
stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb

ttyS0 を使用してデータを送信する

echo "888888"  > /dev/ttyS0

Windows のシリアル ポートがデータを受信します

ここに画像の説明を挿入

hexdump を使用して、hexdump の具体的な使用方法を表示することもできます。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44618297/article/details/131881635