c# 以十六进制读取串行

c# read serial in hex

我正在使用 SDS011 激光粉尘传感器,想读取 Windows 表格应用程序中的数据。 我得到十六进制数据。示例:AA C0 D4 04 3A 0A A1 60 1D AB 现在第四对和第三对代表 PM2.5 值,在这个例子中:04D4 -> 1236 -> 123,6 ug/m^3 能否请您帮我写一个读取十六进制数据并计算PM2.5值的代码? 谢谢。

如果数据以字符串形式出现,那么它很简单:

string inputData = "AA C0 D4 04 3A 0A A1 60 1D AB";
var inputDataSplit = inputData.Split(' ');
// Concatenate the fourth and the third string, and convert it to integer with base 16 (hex)
int pmValue = Convert.ToInt32(inputDataSplit[3] + inputDataSplit[2], 16);
        
// 1236
Console.Write(pmValue);