C#写一个上位机模板以及注意事项

C#写一个上位机详细模板

初始化连接(可直接当做模板用)

	public SerialPort SerialPortObject2 = new SerialPort();        //定义一个对象
	string[] SerialPortObject2 = SerialPort.GetPortNames();        //读取可用串口,并且放到combox中
	foreach (string port in strPort)
	{
		comboBox.Items.Add(port);
	}
	
	SerialPortObject2.PortName = comBox1.text                       //初始化串口
	SerialPortObject2.BaudRate = 9600;                              //波特率 
	SerialPortObject2.DataBits = 8;                                 //设置8位数据
	SerialPortObject2.StopBits = StopBits.One;                      //停止位1位
	SerialPortObject2.Parity = Parity.None;                         //无校验
	SerialPortObject2.Open();										//打开串口
	/*
	byte[] matchCommand = { 0x--, 0x--, 0x--, 0x--, 0x--, 0x-- };          //定义配对命令;数据协议需要自己定,不是必须的
	byte[] requestCommand = { 0x--, 0x--, 0x--, 0x--, 0x--, 0x--, 0x-- };  //定义请求信息命令,不是必须的
	*/
	SerialPortObject2.Write(matchCommand, 0, matchCommand.Length);       //发送握手信号
	Thread.Sleep(100);                              //如果发送数据后不进行延迟,一般来说无法接收到实时数据
	SerialPortObject2.DiscardInBuffer();            //清零串口读取缓冲区,有了延迟后,所以会得到对方返回的数据
	SerialPortObject2.Write(requestCommand, 0, requestCommand.Length);//发一次请求信息命令后也要进行延时处理
	Thread.Sleep(100);

进行目标信息的处理(可直接当做模板用)

	int n = SerialPortObject2.BytesToRead;           //BytesToRead是属性不是方法,它代表了接收了有多少字节
	byte[] buf = new byte[n];                        //声明一个临时数组存储当前来的串口数据
	SerialPortObject2.Read(buf, 0, n);               //读取缓冲数据
	List<byte> buffer = new List<byte>(4096);        //buffer作为buf的数据接收
	buffer.AddRange(buf);                            //将buf放到buffer里;
													//AddRange可以让我们要加入的东西一次性加入; ADD只能一条一条的加
	buffer.Count;                               //代表list(buffer)中实际元素个数
	buffer[2];                                     //buffer中第3个数据;
(づ ̄3 ̄)づ╭?

小细节

一 清除Item元素
C#清空Combox 的Iteam元素:

  combox1.ResetText();         //combox1.ResetContent不支持

二 清除文本框内容
C#combobox1中设置dropdownstyle为dropdownlist,清空文本框内容时写法:

comboBox1.SelectedIndex = -1;

C#combobox1中设置dropdownstyle为dropdown,清空文本框内容时写法:

comboBox1.text= "";

C#combobox1中设置了items,清空文本框内容时写法:

 comboBox2.Items.Clear();

三.串口初始化信息的原理(请参考https://zhidao.baidu.com/question/630282737590688484.html)

1,起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。
2,数据位(Data Bits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。
3,校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。
4,停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。
四.窗体操作
GrowOnly: 这个有关于程序启动时窗体是否自适应;
FormBorderStyle Form: 边框样式

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值