QR-10系列的电阻箱支持AT指令配置阻值,因此决定给他设置一个简单的上位机。
本次使用了visual studio 2019 ,使用winform来搭建。
配置电阻的AT指令:AT+USER.SP=xx\r\n
xx:表示你需要设置的阻值
设计的上位机主要用到串口的打开关闭,串口发送,串口接收这三个功能。
//串口打开与发送部分的代码
private void button4_Click(object sender, EventArgs e)
{
if (button4.Text == "打开串口")
{
try
{
serialPort1.PortName = comboBox1.Text;
serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text, 10);//转换成10进制
serialPort1.Open();
ButtonEnable();
button4.Text = "关闭串口";
}
catch (Exception ex)
{
MessageBox.Show("串口打开失败" + ex, "ERROR");
}
}
else if (button4.Text == "关闭串口")
{
try
{
serialPort1.Close();
ButtonDisable();
button4.Text = "打开串口";
}
catch (Exception ex)
{
MessageBox.Show("串口关闭失败" + ex, "ERROR");
}
}
}
//串口发送部分:
//先判断输入框是否有阻值输入。
//有阻值的情况下,发送AT指令
if (tbx_zuzhi.Text=="")
{
s1 = "请输入阻值\r\n";
textBox_msg.AppendText(s1);
return 2;
}
s2 = "AT+USER.SP=";
s2 += tbx_zuzhi.Text;
s2 += "\r\n";
try
{
serialPort1.Write(s2);
textBox_msg.AppendText($"阻值设置:{tbx_zuzhi.Text}\r\n");
}
catch
{
}
//串口接收
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
string content = serialPort1.ReadExisting(); //从串口事件读取输入流返回为string
Invoke(new UpdateDisplayDelegate(UpdateDisplayToTextBox), new object[] { content, textBox_msg });
}
catch (Exception ex)
{
MessageBox.Show("接收数据出错" + ex, "ERROR");
}
}
界面最终的样子:
测试效果:
没有找到上传压缩包的位置,如有需要再上传
更多回帖