You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AT90E32+STM32寄存器输出解读:C相电压RMS读取值转换疑问

AT90E32 C相电压RMS寄存器换算解答

核心概念解释:1LSB含义

LSB是最小有效位(Least Significant Bit)的缩写,这里官方标注的1LSB=0.01V,指寄存器存储的整数值每变化1,对应的实际电压值就变化0.01V。

你当前换算错误的原因

你的计算逻辑有两个核心错误:

  • 寄存器解读规则错误:AT90E32的电压RMS寄存器是16位无符号整数整体存储采样值,不是拆分高低字节分别存储电压的整数部分和小数部分
  • 字节序、位序读反:16位寄存器采用大端传输规则,高字节在前、低字节在后,且单个字节的二进制位遵循左高右低的规则,你逆序读取位、反序拼接字节的操作得到的数值完全错误

正确换算步骤

你读取到的原始16位二进制值为0011110010001111,按以下步骤计算:

  1. 直接将16位二进制数转换为十进制整数:0011110010001111 = 15503
  2. 乘以LSB系数:15503 * 0.01V = 233.03V,和预期的233.3V误差属于正常采样偏差范围

后续调试建议

读取AT90E32的16位寄存器时,直接将先读到的字节作为高8位、后读到的字节作为低8位,拼接为16位无符号整数后再乘以对应物理量的LSB系数即可,不需要拆分字节单独计算。


内容的提问来源于stack exchange,提问作者25pawel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:00:01