【源码开源】C#桌面应用开发:串口调试助手
c#桌面应用开发
1、环境搭建和工程创建:参照番茄定时器项目
工程创建参照
2、界面布局设计
3、具体功能函数
(1)端口扫描:
private void btn_com_scan_Click(object sender, EventArgs e)
{
//端口号扫描
ReflashPortToComboBox(serialPort1, cb_select_com);
}
(2)初始化界面数据设置
private void Form1_Load(object sender, EventArgs e)
{
//第一次加载的时候,进行端口号扫描
ReflashPortToComboBox(serialPort1, cb_select_com);
cb_select_com.SelectedItem = "COM1";
cb_select_baudrate.SelectedItem = "115200";
cb_select_data_bits.SelectedItem = "8";
cb_select_check_bit.SelectedItem = "None";
cb_select_stop_bit.SelectedItem = "1";
btn_open_com.Enabled = true;
btn_close_com.Enabled = false;
//默认使用 ascii模式
rbtn_recv_ascii.Checked = true;
rbtn_send_ascii.Checked = true;
}
(3)串口接收:
private void ReceiveData(object sender, SerialDataReceivedEventArgs e)
{
string content = serialPort1.ReadExisting(); //从串口中读取输入流,返回string
ShowData(content);
}
private void ShowData(string text)
{
string receiveText = text;
//更新接收数据计数
recv_cntr += (UInt32)receiveText.Length;
lab_recv_cntr.Text = recv_cntr.ToString();
textBox_debug.AppendText("接收到了"+ receiveText.Length.ToString()+ "个数据: "+ text+"\r\n");
if (rbtn_recv_hex.Checked)
{//按HEX模式 展示接收到的内容
byte[] recData = System.Text.Encoding.Default.GetBytes(receiveText);// 将接受到的字符串据转化成数组;
foreach (byte str in recData)
{
textBox_recv.AppendText(string.Format("{0:X2} ", str));
}
}
else
{//按ASCII模式 展示接收到的内容
textBox_recv.AppendText(text); //将收到的字符串追加展示出来
}
}
(4)按钮事件:
private void btn_open_com_Click(object sender, EventArgs e)
{
Int32 ibaudrate = Convert.ToInt32(cb_select_baudrate.SelectedItem.ToString());
serialPort1.PortName = cb_select_com.SelectedItem.ToString();
serialPort1.BaudRate = ibaudrate;
serialPort1.Parity = (System.IO.Ports.Parity)Enum.Parse(typeof(System.IO.Ports.Parity), cb_select_check_bit.Text);
serialPort1.StopBits = (System.IO.Ports.StopBits)Enum.Parse(typeof(System.IO.Ports.StopBits), cb_select_stop_bit.Text);
serialPort1.DataBits = Convert.ToInt16(cb_select_data_bits.Text);
//添加串口事件处理
serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(ReceiveData);
try
{
serialPort1.Open();
btn_open_com.Enabled = false;
btn_close_com.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show("串口打开失败"+ex, "Error");
}
4、完整工程代码开源
源码打包上传在CSDN,本意是不需要使用积分免费下载,如果下载时遇到收积分,联系我私发即可
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

