串口是单片机上位机开发的重点
显示256个十六进制数
到ff呗
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) //窗口创建初始化函数 { string str; //夜光:用来临时存储i大写的十六进制格式字符串 for(int i = 0; i< 256; i++)//256个 { //下面的x代表十六进制,不代表字符 str = i.ToString("x").ToUpper();//ToString("x")是将数字转换成为十六进制字符串 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 convertdata = data.Substring(2, 2); // 把字符分开 byte[] buffer = new byte[1]; //数据一个字节就够用了 buffer[0] = Convert.ToByte(convertdata, 16); //将字符串转换为byte型变量(byte类似单片机里面的 unsigned char) try //夜光:防止出错 { serialPort1.Open(); serialPort1.Write(buffer, 0, 1); serialPort1.Close(); } catch //如果出错就执行下面的代码 { if (serialPort1.IsOpen) serialPort1.Close(); //如果是写数据出错,此时窗口为打开状态,就应该关闭串口,防止下次不可以使用 MessageBox.Show("端口错误","error"); } } } }