m0_46820994 2020-09-30 15:04 采纳率: 0%
浏览 193
已采纳

报错:串口接收出错,输入字符串的格式不对

array^ DataFromSensor = gcnew array(40960); //存储传感器发来的数据
private: System::Void port_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e)
{
//serialPort1->DataReceived += gcnew System::IO::Ports::SerialDataReceivedEventHandler(this, &MyForm::port_DataReceived);
try
{
int ilen = serialPort1->BytesToRead; //串口读取字符数量
//array^ bytes = gcnew array(ilen);
serialPort1->Read(DataFromSensor, 0, ilen);
tbxRecvNum->Text = ilen.ToString();
if (DataFromSensor[0] == 0x64) //串口接收数据校验正确
{
if (time_flag == true)
{
DisplayDataInText(); //将温湿度数据在textBox中显示
DataToArray(); //将接受的数据存入数组,用于曲线显示
}
}
}
catch(Exception^ error)
{

MessageBox::Show("串口接收出错" + error->Message);
toolStripStatusLabel1->Text = "串口数据接收出错,请检查!\r\n";
}
}

public:System::Void DisplayDataInText()
{
String^ str = System::Text::Encoding::Default->GetString(DataFromSensor);
String^ str1 = str->Remove(0, 1);
String^ str2 = str1->Remove(4);
tbxTemp1->Text = str2; //显示传感器1的温度
String^ str3 = str1->Remove(0, 4);
String^ str4 = str3->Remove(4);
tbxHumi1->Text = str4; //显示传感器1的湿度

String^ str5 = str1->Remove(0, 8);
String^ str6 = str5->Remove(4);
tbxTemp2->Text = str6;              //显示传感器2的温度
String^ str7 = str1->Remove(0, 12);
String^ str8 = str7->Remove(4);
tbxHumi2->Text = str8;              //显示传感器2的湿度

String^ str9 = str1->Remove(0, 16);
String^ str10 = str9->Remove(4);
tbxTemp3->Text = str10;             //显示传感器3的温度
String^ str11 = str1->Remove(0, 20);
String^ str12 = str11->Remove(4);
tbxHumi3->Text = str12;             //显示传感器3的湿度

String^ str13 = str1->Remove(0, 24);
String^ str14 = str13->Remove(4);
tbxTemp4->Text = str14;             //显示传感器4的温度
String^ str15 = str1->Remove(0, 28);
String^ str16 = str15->Remove(4);
tbxHumi4->Text = str16;             //显示传感器4的湿度

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-30 21:56
    关注

    具体你看程序出错的代码行,这种错误一般是字符串转换成数字的时候,字符串格式不正确,无法转换成数字造成的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上