主题中讨论的其他器件:OPT4048
工具与软件:
- 垃圾值
无论测量环境如何、传感器都会输出垃圾值。 值与 GUI 中显示的结果有很大差异。 - 寄存器0x0B 问题
当从地址0x0B 的寄存器读取时、位15-7的值不符合预期128。 相反、它始终读作35。 我认为这种差异可能是传感器未能提供正确测量值的原因。
下面是我将用于读取寄存器的执行代码片段
使用 CSharp 代码
VAR 测试= 器件。 ReadRegister (0x0B);
公共 int ReadRegister (字节地址)
{
字符串命令=$"REGRx{address:X2}";
var check = SendPacket (命令、"I2C Register Read");
返回转换。 ToInt32 (SendPacket (命令、"I2C 寄存器读取")、16);
}
公共字符串 SendPacket (字符串命令、字符串操作="器件操作")
{
字符串数据包=命令+"\r";
SerialPort。 写入(数据包);
字符串响应= SerialPort。 readline();
string[] responseParts =响应。 分割(分隔符);
if (responseParts. 长度> 1)
{
char statusCode = responseParts[1][0];
if (statusCode == SuccessCode)
{
返回响应部件。 长度> 2? ResponseParts[2].split('\r')[0]:"成功";
}
}
设计
{
抛出新的异常("无效的响应格式");
}
}