fix(eth): 修复EthNet模块参数配置和调试命令问题
This commit is contained in:
@@ -623,6 +623,11 @@ void EthLoopHandler(void)
|
||||
break;
|
||||
|
||||
case ETH_WAIT_LINK:
|
||||
if(CatOne.EthLinkWaitCnt == 0) {
|
||||
/* 首次进入等待链路状态,等待模块完全启动 */
|
||||
CAT1_DBG_LOG("ETH Waiting for module ready...\r\n");
|
||||
rt_thread_delay(2000);
|
||||
}
|
||||
if(ETH_LINK_GET() == Reset) {
|
||||
CAT1_DBG_LOG("ETH Link OK!\r\n");
|
||||
if(CatOne.GateWay->SvrRegFlag == false) {
|
||||
@@ -890,11 +895,6 @@ void ETHTriggerRegister(void)
|
||||
CatOne.EthStatus = ETH_REG_SVR;
|
||||
}
|
||||
|
||||
void ETHResetEx(void)
|
||||
{
|
||||
CatOne.EthStatus = ETH_RESET;
|
||||
}
|
||||
|
||||
void ETHApplyNetPara(void)
|
||||
{
|
||||
uint8_t cmdBuf[128];
|
||||
@@ -939,7 +939,7 @@ void ETHApplyNetPara(void)
|
||||
cmdBuf[idx++] = 0xED; cmdBuf[idx++] = 0xF2; cmdBuf[idx++] = 0xA3; cmdBuf[idx++] = 0x56;
|
||||
cmdBuf[idx++] = 0xCA; cmdBuf[idx++] = 0xDB; cmdBuf[idx++] = 0x91; cmdBuf[idx++] = 0x84;
|
||||
cmdBuf[idx++] = 0xB0; cmdBuf[idx++] = 0xD7;
|
||||
cmdBuf[idx++] = 0x03; /* 命令类型: 写参数并保存到Flash */
|
||||
cmdBuf[idx++] = 0x01; /* 命令类型: 写参数,部分参数修改后会自动重启 */
|
||||
cmdBuf[idx++] = 0x00; /* 偏移: 0x00 */
|
||||
cmdBuf[idx++] = 0x15; /* 长度: 21字节 */
|
||||
|
||||
@@ -989,29 +989,17 @@ void ETHApplyNetPara(void)
|
||||
cmdBuf[idx++] = 0xED; cmdBuf[idx++] = 0xF2; cmdBuf[idx++] = 0xA3; cmdBuf[idx++] = 0x56;
|
||||
cmdBuf[idx++] = 0xCA; cmdBuf[idx++] = 0xDB; cmdBuf[idx++] = 0x91; cmdBuf[idx++] = 0x84;
|
||||
cmdBuf[idx++] = 0xB0; cmdBuf[idx++] = 0xD7;
|
||||
cmdBuf[idx++] = 0x03; /* 命令类型: 写参数并保存到Flash */
|
||||
cmdBuf[idx++] = 0x01; /* 命令类型: 写参数,DHCP修改后会自动重启 */
|
||||
cmdBuf[idx++] = 0x38; /* 偏移: 0x38 (DHCP en) */
|
||||
cmdBuf[idx++] = 0x01; /* 长度: 1字节 */
|
||||
cmdBuf[idx++] = (pCfg->EthNet.IpMode == ETH_IP_DHCP) ? 0x01 : 0x00;
|
||||
|
||||
CAT1_DBG_LOG("ETH Write DHCP=%d", cmdBuf[idx - 1]);
|
||||
EthOrCat1UartSend(cmdBuf, idx);
|
||||
rt_thread_delay(500);
|
||||
rt_thread_delay(3000); /* 等待模块重启 */
|
||||
|
||||
/* 步骤3: 使用07命令重启模块使参数生效
|
||||
* 07命令: 写参数+保存+重启。写入偏移0x1F(DevID),1字节0x00
|
||||
* DevID不可修改,实际效果只是重启模块
|
||||
/* 注意:不要向DevID(偏移0x1F)区域写入任意数据,否则根据手册说明,
|
||||
* 如果写入的ID不正确,设备会丢弃所有其他写入的参数
|
||||
* 模块会在下次上电时自动使用Flash中保存的参数工作
|
||||
*/
|
||||
idx = 0;
|
||||
cmdBuf[idx++] = 0xED; cmdBuf[idx++] = 0xF2; cmdBuf[idx++] = 0xA3; cmdBuf[idx++] = 0x56;
|
||||
cmdBuf[idx++] = 0xCA; cmdBuf[idx++] = 0xDB; cmdBuf[idx++] = 0x91; cmdBuf[idx++] = 0x84;
|
||||
cmdBuf[idx++] = 0xB0; cmdBuf[idx++] = 0xD7;
|
||||
cmdBuf[idx++] = 0x07; /* 命令类型: 写参数+保存+重启 */
|
||||
cmdBuf[idx++] = 0x1F; /* 偏移: 0x1F (DevID区域,不可修改) */
|
||||
cmdBuf[idx++] = 0x01; /* 长度: 1字节 */
|
||||
cmdBuf[idx++] = 0x00; /* 写入无效数据,仅触发重启 */
|
||||
|
||||
CAT1_DBG_LOG("ETH Restart module");
|
||||
EthOrCat1UartSend(cmdBuf, idx);
|
||||
rt_thread_delay(2000);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user