using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO.Ports; using System.Windows.Forms; namespace Tps_LQ_Transmitter.com { public class TransmitterSerialPort { SerialPort sp = new SerialPort(); //新建一个串口对象 public void SerialOpen(string PORT) { sp.PortName = PORT; //端口号设置为com_port的值 sp.BaudRate = 115200; sp.DataBits = 8; sp.StopBits = StopBits.One;//停止位设置为com_stop的值 sp.Parity = Parity.Odd;//获取奇偶校验选项的值 sp.ReadTimeout = 1000; //读取等待时间无限长 sp.RtsEnable = true; try { if (!sp.IsOpen) { sp.Open(); //打开串口 } } catch (Exception e2) { Console.WriteLine("open err:" + e2.Message); } } public void DUT_Transmitter_Ctrol(byte ModeSelect,byte FreqSelect) { try { if (!sp.IsOpen) { sp.Open(); //打开串口 } } catch (Exception e2) { Console.WriteLine("open err:" + e2.Message); } byte[] JGbuffer = new byte[4]; int offset = 0; JGbuffer[offset++] = 0xEB; JGbuffer[offset++] = 0x90; JGbuffer[offset++] = ModeSelect;//切模式 JGbuffer[offset++] = FreqSelect;//切频点 try { sp.Write(JGbuffer, 0, JGbuffer.Length); } catch (Exception ex) { MessageBox.Show($"串口控制频点失败:{ex.Message}"); throw new Exception($"write com error msg:{ex.Message}"); } } public void SerialClose() { sp.Close(); } } }