樹莓派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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM