SerialPort.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO.Ports;
  7. using System.Windows.Forms;
  8. namespace Tps_LQ_Transmitter.com
  9. {
  10. public class TransmitterSerialPort
  11. {
  12. SerialPort sp = new SerialPort(); //新建一个串口对象
  13. public void SerialOpen(string PORT)
  14. {
  15. sp.PortName = PORT; //端口号设置为com_port的值
  16. sp.BaudRate = 115200;
  17. sp.DataBits = 8;
  18. sp.StopBits = StopBits.One;//停止位设置为com_stop的值
  19. sp.Parity = Parity.Odd;//获取奇偶校验选项的值
  20. sp.ReadTimeout = 1000; //读取等待时间无限长
  21. sp.RtsEnable = true;
  22. try
  23. {
  24. if (!sp.IsOpen)
  25. {
  26. sp.Open(); //打开串口
  27. }
  28. }
  29. catch (Exception e2)
  30. {
  31. Console.WriteLine("open err:" + e2.Message);
  32. }
  33. }
  34. public void DUT_Transmitter_Ctrol(byte ModeSelect,byte FreqSelect)
  35. {
  36. try
  37. {
  38. if (!sp.IsOpen)
  39. {
  40. sp.Open(); //打开串口
  41. }
  42. }
  43. catch (Exception e2)
  44. {
  45. Console.WriteLine("open err:" + e2.Message);
  46. }
  47. byte[] JGbuffer = new byte[4];
  48. int offset = 0;
  49. JGbuffer[offset++] = 0xEB;
  50. JGbuffer[offset++] = 0x90;
  51. JGbuffer[offset++] = ModeSelect;//切模式
  52. JGbuffer[offset++] = FreqSelect;//切频点
  53. try
  54. {
  55. sp.Write(JGbuffer, 0, JGbuffer.Length);
  56. }
  57. catch (Exception ex)
  58. {
  59. MessageBox.Show($"串口控制频点失败:{ex.Message}");
  60. throw new Exception($"write com error msg:{ex.Message}");
  61. }
  62. }
  63. public void SerialClose()
  64. {
  65. sp.Close();
  66. }
  67. }
  68. }