我正在将 M90E32AS 电能表 IC 与 dsPIC33F 系列处理器连接。我成功读取了电压和电流值。我也尝试读取功率值,根据数据表,功率寄存器为 32 位宽。我尝试使用以下代码读取 32 位值,但没有成功。帮助我纠正错误。
int PmB_read()
{
CS=0;
SPI2BUF=SBUF=0x80B2;
while(SPI2STATbits.SPITBF==1){}
SPI2BUF=0x0;
while(SPI2STATbits.SPITBF==1){}
delay();
CS=1;
HiByte = SPI2BUF;
return HiByte;
}
int PmBLSB_read()
{
CS=0;
SPI2BUF=SBUF=0x80C2;
while(SPI2STATbits.SPITBF==1){}
SPI2BUF=0x0;
while(SPI2STATbits.SPITBF==1){}
delay();
CS=1;
LoByte = SPI2BUF;
TPmB = (HiByte << 16)| LoByte;
Total = TPmB * 0.00032;
return Total;
}
这是电源寄存器的数据表屏幕截图