SerialPort.cs 2.0 KB

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