我在0x30的寄存器里使能了MODULE_MON_EN,然后到0x03也令CMD_MODULESEL=1了,为什么读不到数据?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
两次转换是ADC自动完成的。
BAT采集是和电芯、NTC采集是一起的。
发送write without response 给0x02寄存器, data00指令,启动ADC,转换,
再等待5ms, write with response 给0x02寄存器,data 20, 等待返回数据。就可以,按照CHANNELS Selection,寄存器的转换顺序得到VMOD。
你好,我试了下还是不行,我把我步骤跟你说下
按以下顺序发送:(第1个字节是起始帧,第二个是器件地址,第三个是寄存器,最后两个是CRC,其他的是数据)
Tx[7]={0x92(起始帧),0x00(器件地址),0x30(寄存器),0x00(数据),0x01(数据),0x78(CRC),0x12(CRC)}; / /使能总电压采集
Tx1[9]={0x94,0x00,0x03,0x03,0xFF,0x15,0x02,0x2E,0xEC}; //通道选择(我选了10节电池,3个温度的,还有总电压那个)
Tx2[6]={0x91,0x00,0x02,0x00,0x2D,0x9C}; //采样命令不带返回值
Tx3[6]={0x81,0x00,0x02,0x20,0x28,0x84}; //采样带返回值
然后结果就是能采到10节电池的单体电压和3温度的值,但是总电压就是采不到,请问哪里出问题了?
解决了,是我搞错了,把使能总电压采集的寄存器的十进制位置当成16进制写进去,改过来之后就可以了,正确应该是写
Tx[7]={0x92,0x00,0x1E(这个搞错了),0x00,0x01,0x18,0x1B};