美文网首页嵌牛IT观察
树梅派串行口通信方法

树梅派串行口通信方法

作者: 孙昊_cd3f | 来源:发表于2018-12-14 21:03 被阅读0次

    姓名:孙昊

     学号:16020188032

     转载自https://blog.csdn.net/huayucong/article/details/47006431,有删节

    嵌牛导读】:本文主要介绍树莓派串行口通讯的主要方法和配制过程,以及注意事项。

    嵌牛鼻子】:树莓派 串行通信

    嵌牛提问】:树莓派还有哪些好的应用?

    嵌牛正文】:

    一、树莓派串行通信的方法 

        树莓派的串行通讯的方式主要有两种:一种是通过树莓派GPIO口、一种是通过USB口。

    二、莓派的串口(UART)配置和使用

    1、树莓派上UART端口的位置

        GND位于HEAD-6(也可选其他GND)

        TXD位于HEAD-8

        RXD位于HEAD-10

        树莓派的第一排的第三,四,五分别,也就是下图的6,8,10三个端口分别是地、TX与RX。注意在接线时,3根线都要接,首先设备必须共地,树莓派的TX要连接从设备的RX,树莓派的RX要连接树莓派的TX。

                                                                             图. 树莓派 UART位置

    2、树莓派的串口电平

        树莓派的TX和RX是TTL电平,如果从设备不是TTL电平就需要进行电平转换,转换方式需要根据从设备的信号形式。例如,如果从设备是RS232电平(比TTL电平抗干扰,尤其是距离较长的时候),就需要到网上购买RS232转TTL的转换模块。(下面网址不是广告只是个例子https://detail.tmall.com/item.htm?spm=a230r.1.14.1.JBapZL&id=12425122397&cm_id=140105335569ed55e27b&abbucket=19)

    说明:TTL电平与RS232电平的区别

    1)TTL电平标准

        输出 L:<0.8V ; H:>2.4V。

        输入 L:<1.2V ; H:>2.0V

        TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。

    2)RS232标准

        逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次。

    3、树莓派的串口默认为一个控制台,用于SSH调试使用,若要使用串口需要修改两处文件。 具体的修改方法如下:

    1)修改两处文件

    【1】/boot/cmdline.txt

    【输入以下指令】

        sudo nano /boot/cmdline.txt

    【删除红色部分】

        dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4elevator=deadline rootwait

    【最终变为】

        dwc_otg.lpm_enable=0 console=tty1root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait    

    【2】/etc/inittab

    【输入以下指令】

        sudo nano /etc/inittab

    【注释最后一行内容】

        #T0:23:respawn:/sbin/getty -LttyAMA0 115200 vt100  

    2)重新启动系统

        sudo reboot

    4、测试 

        配置完之后便可测试一下树莓派的UART是否正常工作,而minicom便是一个简单好用的工具。minicom是linux平台串口调试工具,相当于windows上的串口调试助手。

    【1】minicom安装

        sudo apt-get install minicom

    【2】minicom启动

        minicom -b 9600 -o -D /dev/ttyAMA0

        -b代表波特率,-D代表端口,/dev/ttyAMA0 类似于windows中的COM1,-o功能暂时未知。

                                                                           图. minicon界面

    【3】minicom发送内容

         直接在控制台中输入内容即可,如果minicom打开了回显可在控制台中观察到输出内容,如果回显关闭则控制台中没人任何反应,千万不要以为minicom没有正常工作。

    【4】minicom回显控制

         先Ctrl+A,再E。可翻转回显状态(原来回显打开则此事回显关闭)

    【5】minicom退出

         先Ctrl+A,再Q。

    5、利用python程序通信事例(利用pyserial,下载安装方法见后文)

         import serial  

         from time import sleep  

         ser = serial.Serial('/dev/ttyAMA0', 9600, timeout=0.5)   

         def recv(serial):    

             data  

             while True:    

                 data =serial.read(30)    

                 if data == '':    

                     continue  

                 else:  

                     break  

                 sleep(0.02)   

             return data    

         while True:    

             data =recv(ser)    

             ser.write(data)

    三、树莓派的串行通信(利用USB)配置和使用

        首先用RS232转USB的转接线连接树莓派,即可完成硬件连接。对于串口通信,可以通过pyserial实现。

    1、安装pyserial模块和测试

        从https://pypi.python.org/pypi/pyserial下载最新版本的安装包,再通过下面的命令完成安装:

            tar zxvf pyserial-2.7.tar.gz  

            cd pyserial-2.7  

            python setup.py install  

        通过命令lsusb查看串口是否存在:

        通过命令python -m serial.tools.list_ports可以查看大可用的端口:

    2、python通讯程序

        usb设备:/dev/ttyUSB0

         import serial  

         from time import sleep  

         ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=0.5)   

         def recv(serial):    

             data  

             while True:    

                 data =serial.read(30)    

                 if data == '':    

                     continue  

                 else:  

                     break  

                 sleep(0.02)   

             return data    

         while True:    

             ser.write(data)  

             data =recv(ser)    

        总结:如果你使用的是usb Hub,那么通讯的设备就不一定是/dev/ttyUSB0,可能是/dev/ttyUSB1,/dev/ttyUSB2,/dev/ttyUSB3等,以此类推。

    相关文章

      网友评论

        本文标题:树梅派串行口通信方法

        本文链接:https://www.haomeiwen.com/subject/tnjnhqtx.html