实际上这个不是错误,这个是你的从机发32个字节数据就可以了,这里只是读取了4个字节
现在HAL版的改成了4个字节数据了。
[C] 纯文本查看 复制代码 /*
*********************************************************************************************************
* 函 数 名: MODH_Read_03H
* 功能说明: 分析03H指令的应答数据,读取保持寄存器,16bit访问
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
void MODH_Read_03H(void)
{
uint8_t bytes;
uint8_t *p;
if (g_tModH.RxCount > 0)
{
bytes = g_tModH.RxBuf[2]; /* 数据长度 字节数 */
switch (g_tModH.Reg03H)
{
case REG_P01:
if (bytes == 4)
{
p = &g_tModH.RxBuf[3];
g_tVar.P01 = BEBufToUint16(p); p += 2; /* 寄存器 */
g_tVar.P02 = BEBufToUint16(p); p += 2; /* 寄存器 */
g_tModH.fAck03H = 1;
}
break;
}
}
} |