c#串口学习笔记

1、发送数据
 通过串口控件收发数据。
串口控件重要属性:Baudrate:波特率(可改)
                       数据位:一般为8位
                       PortName:COM(1这是串口号)(串口号)
                       ReadBufferSize:4096(读缓冲区)
                       WriteBufferSize:2048(写缓冲区)
                       StopBits:One(停止位)

2、窗口控件:

一个编辑框

一个按钮
代码顺序:
1、初始化将十进制转为16进制,有256个16进制数。
ToString("x")将数字转换为16进制字符串,ToUpper是将字符串所有字符大写
2、为了让代码更加规范,进行判断如果数据长度等于1位就在它的前面加一个0让它的格式更规范。
3、点击事件
(1).存储下拉列表的内容
(2).忽略前两位只读后两位
(3). 定义一个数组只包含一个数据的数组,因为只发送一个数据所以数组只包含1个数据
(4).将数组内的数据转换为16进制数据
(5).进行容错处理防止串口出错
(6).代码:

public Form1(){
            InitializeComponent();
      }
      private void Form1_load(object sender,EventArgs e){
            string str;//用来临时存储i大写的十六进制格式字符串
            for(int i=0;i<256;i++){
                   str=i.ToString("x").ToUpper();//ToString("x")将数字转换为16进制字符串,ToUpper是将字符串所有字符大写
                   if(str.Length==1){
                         str="0"+str;//如果是一位的(0xA),此时为了对齐,在数据前加一个字符串"0"(0x0A)
                   }
                   comboBox1.Items.Add("0x"+str);//统一添加"0x"
            }
            comboBox1.Text="0X00";//初始值
      }

      private void button1_Click(object sender,EventArgs e){
             string data=comboBox1.Text;//存储当前下拉列表中的内容
             string converdata=data.Substring(2,2);//把字符分开
             byte[] buffer=new byte[1];//数据一个字节就够用了
             buffer[0]=Convert.ToByte(converdata,16);//将字符转化为byte型变量
             try{//容错处理
                  serialPort1.Open();//打开
                  serialPort1.Write(buffer,0,1);//发送数据 从第0个位置开始读取,读取一个字节
                  serialPort1.Close();//关闭
             }
             catch(Exception err){//出错后就执行此块代码  Exception err//错误信息
                    if(serialPort1.IsOpen){
                          serialPort1.Close();//如果是写数据时出错,此窗口状态为开,就应该关闭窗口,防止下次不能使用,串口是不能重复打开和关闭的
                    MessageBox.Show("端口错误","错误");
                    MessageBox.Show(err.ToString(),"错误");//显示错误信息
                    }
             }
      }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值