树莓派怎样安装rxtx串口驱动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派怎样安装rxtx串口驱动相关的知识,希望对你有一定的参考价值。

1.树莓派的第一排的第三,四,五个分别,也就是下图的6,8,10三个端口分别是地,TX与RX,与被连接设备连接起来。注意树莓派的TX要连接从设备的RX,树莓派的RX要连接树莓派的TX

2.树莓派上只有一个串口,系统默认将它作为调试口,所以不能直接当成普通串口进行编程和使用,需要先将调试口的配置去掉,再使用。此处需要修改两处文件
2.1 修改/boot/cmdline.txt
在终端输入如下指令
[plain] view plain copy
sudo nano /boot/cmdline.txt
打开后将红色部分删除
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
删除后,变成如下结果保存退出
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
2.2 修改 /etc/inittab
在终端输入如下指令
[plain] view plain copy
sudo nano /etc/inittab
打开后将最后一行注释掉 在前面加上一个#号即可
#T0:23:respawn:/sbin/getty
-L ttyAMA0 115200 vt100
3.修改完毕后,需要在树莓派上安装一个minicom,这里的minicom是Linux平台的串口调试工具,相当于Windows上的串口调试助手

3.1 安装minicom,输入以下命令
[plain] view plain copy

sudo apt-get install minicom
3.2 安装完毕后需要对minicom进行配置,此处配置文件需要root权限,不然无法保存配置的参数,那么在命令行中输入如下命令

[plain] view plain copy

sudo passwd root
执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行
[plain] view plain copy

sudo passwd --unlock root
这样就解锁了root账户

3.3 切换到root账户,再次打开命令行,输入minicom参数配置命令
[plain] view plain copy

minicom -s
在主菜单的第三项Serial Port Setup,进入下一级菜单,根据菜单项的提示字母选择,按A将串口设备修改为 /dev/ttyAMA0 ,按E将波特率修改为9600或者自己需要的数值,设置好以后返回主菜单,选择Save Setup as Dfl
然后选择Exit,此时如果正常的话就可以进行串口收发了,这里我的树莓派是连接到一台PC上去的,我利用PC的串口调试软件成功进行了收发
tips: 按CTRL+A,接着按Z可以查看minicom的帮助
参考技术A 当出现笔记本无法启动的情况时,建议按照以下方法排除:
1.核实电源指示灯是否亮起。
2.观察屏幕是否亮起,是否可以看到蓝色背景的三星logo画面。
3.若可以看到三星logo画面,建议恢复Bios默认设置,即开机出现三星logo画面按F2进入BIOS,然后按F9,选择Yes,然后按F10保存退出。
4.若恢复BIOS无效,尝试是否可以进入安全模式,即开机出现三星logo画面按F8,选择安全模式进入。
5.若可以进入安全模式,建议在安全模式下将近期安装的软件程序卸载,并且对系统进行病毒的查杀后观察。
6.如果以上操作无效,建议将操作系统重新安装后观察(重装系统前请先将自己重要的资料备份)。
7.若无法重装系统或者重装系统无效,建议联系三星指定授权的售后服务中心检测。

若按下开机键后笔记本的电源指示灯不会亮起,那么需要检查插座和电源适配器是否都已经开启并插好,若确认无问题,那么需要直接联系三星指定授权的售后服务中心检测。

树莓派4B 串口通信

  • 提前下载安装Glade图形编辑器
  • 参考 树莓派4B安装netcore 环境部署、发布、执行操作
  • 准备串口设备本文使用串口控制继电器设备 如图
    技术图片

1、发现串口

        void GetSerialPort()
        {
            Console.WriteLine("发现串口:");
            var names = SerialPort.GetPortNames();
            int count = 1;
            foreach (var item in names)
            {
                ports.Add(count.ToString(), item);
                Console.WriteLine($"{count.ToString()}:{item}");
                count++;
            }
            Console.WriteLine("输入要打开的串口编号:" + ports.Keys.Join(","));

            string portName = ports["2"];

            _SerialPort = new SerialPort(portName, 9600, Parity.None, 8, StopBits.One);
            _SerialPort.Open();
        } 

2、发送协议

        void SendCommand(string command)
        {
            Console.WriteLine(command);
            var buf = command.ToHex();
            if (_SerialPort != null && _SerialPort.IsOpen)
                _SerialPort.Write(buf, 0, buf.Length);
        }

3、Glade设计界面

技术图片

        <?xml version="1.0" encoding="UTF-8"?>
<interface>
  <requires lib="gtk+" version="2.24"/>
  <!-- interface-naming-policy project-wide -->
  <object class="GtkWindow" id="MainWindow">
    <property name="can_focus">False</property>
    <property name="title" translatable="yes">继电器控制</property>
    <property name="window_position">center</property>
    <child>
      <object class="GtkVBox" id="vbox1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <child>
        </child>
        <child>
          <object class="GtkHBox" id="hbox1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <child>
              <object class="GtkToggleButton" id="btnOne">
                <property name="label" translatable="yes">继电器1</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="receives_default">True</property>
                <property name="tooltip_markup">1</property>
                <signal name="toggled" handler="on_togglebutton1_toggled" swapped="no"/>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkToggleButton" id="btnTwo">
                <property name="label" translatable="yes">继电器2</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="receives_default">True</property>
                <property name="tooltip_markup">2</property>
                <signal name="toggled" handler="on_togglebutton1_toggled" swapped="no"/>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">1</property>
              </packing>
            </child>
            <child>
              <object class="GtkToggleButton" id="btnThree">
                <property name="label" translatable="yes">继电器3</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="tooltip_markup">3</property>
                <property name="receives_default">True</property>
                <signal name="toggled" handler="on_togglebutton1_toggled" swapped="no"/>

              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">2</property>
              </packing>
            </child>
            <child>
              <object class="GtkToggleButton" id="btnFour">
                <property name="label" translatable="yes">继电器4</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="receives_default">True</property>
                <property name="tooltip_markup">4</property>
                <signal name="toggled" handler="on_togglebutton1_toggled" swapped="no"/>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">3</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="expand">True</property>
            <property name="fill">True</property>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <object class="GtkToggleButton" id="togglebutton1">
            <property name="label" translatable="yes">全部打开</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
            <property name="tooltip_markup">0</property>
            <signal name="toggled" handler="on_togglebutton1_toggled" swapped="no"/>
          </object>
          <packing>
            <property name="expand">True</property>
            <property name="fill">True</property>
            <property name="position">2</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>

源码下载 code.rar

以上是关于树莓派怎样安装rxtx串口驱动的主要内容,如果未能解决你的问题,请参考以下文章

树莓派zero_w 串口的使用(解决usb可用rxtx不可用的问题)

树莓派启动:for Mac

树莓派串口通信

树莓派串口通信

树莓派4B 串口通信

树莓派外设开发综述