diff --git a/Anjiehui7_DTU/User/dwin_form.c b/Anjiehui7_DTU/User/dwin_form.c index 8c665d4..8323c17 100644 --- a/Anjiehui7_DTU/User/dwin_form.c +++ b/Anjiehui7_DTU/User/dwin_form.c @@ -54,7 +54,7 @@ SemaphoreHandle_t Form_KeyQ = NULL; // 首页表格,报警页表格,查询表格, 关于表格 form_grid_t gridAll, gridWarn, gridQuery, gridAbout,gridAboutEn; - +form_grid2_t gridBox; // 用于生成显示屏命令 form_data_t formData; @@ -132,7 +132,7 @@ void DWIN_ParseFrame(uint8_t c) // 触摸按键返回 if(readData.Addr == 0x5000 || readData.Addr == 0x5012 || readData.Addr == 0x5030 || readData.Addr == 0x5022 || readData.Addr == 0x502C || readData.Addr == 0x502E - || readData.Addr == 0x5032|| readData.Addr == 0x6F00) + || readData.Addr == 0x5032|| readData.Addr == 0x5034|| readData.Addr == 0x5036|| readData.Addr == 0x6F00) { LoopBuff_PutItem(&Form_KeyM, (uint8_t *) &readData); // 发消息给任务 @@ -339,7 +339,47 @@ void Form_RefreshGrid(form_grid_t *grid) // 发送消息给任务 xSemaphoreGive(Form_DataQ); } +// 刷新表格 +void Form_RefreshGrid2(form_grid2_t *grid) +{ + int16_t i, len; + // 加锁 + xSemaphoreTake(Form_DataLock, portMAX_DELAY); + + // 先将数据写入备份缓冲 + for(i = 0; i < grid->rowCount; i++) + { + formData.oper = DWIN_OPER_WRITE; + formData.Addr = grid->rowPtr[i] + (grid->bufIdx == 0 ? 0x40 : 0); + strcpy(formData.str, grid->rowStr[i]); + len = strlen(formData.str); + memset(formData.str + len, ' ', sizeof(formData.str) - len); + formData.count = sizeof(formData.str); + // 加入队列 + LoopBuff_PutItem(&Form_DataM, (uint8_t *) &formData); + } + + // 再将备份缓冲作为显示缓冲 + for(i = 0; i < 30; i++) + { + formData.oper = DWIN_OPER_WRITE; + formData.Addr = grid->rowDesc[i]; + formData.count = 2; + formData.word[0] = htons(grid->rowPtr[i] + (grid->bufIdx == 0 ? 0x40 : 0)); + // 加入队列 + LoopBuff_PutItem(&Form_DataM, (uint8_t *) &formData); + } + + // 将原显示缓冲作为备份缓冲 + grid->bufIdx = 1 - grid->bufIdx; + + // 解锁 + xSemaphoreGive(Form_DataLock); + + // 发送消息给任务 + xSemaphoreGive(Form_DataQ); +} // 滚动表格 void Form_ScrollGrid(form_grid_t *grid) { @@ -422,6 +462,7 @@ void Form_Open() gridQuery.rowCount = 10; gridAbout.rowCount = 10; gridAboutEn.rowCount = 10; + gridBox.rowCount=30; gridAll.hdrAddr = 0x5200; for(i = 0; i < gridAll.rowCount; i++) @@ -453,6 +494,12 @@ void Form_Open() gridAboutEn.rowDesc[i] = 0xB7F0 + 0x10 * i; gridAboutEn.rowPtr[i] = 0x7A00 + 0x80 * i; } + gridBox.hdrAddr=0x8000; + for(i = 0; i < gridBox.rowCount; i++) + { + gridBox.rowDesc[i] = 0xC010 + 0x10 * i; + gridBox.rowPtr[i] = 0x8080 + 0x80 * i; + } // 启动串口 huart10.RxISR = DWIN_IRQHandler; SET_BIT(UART10->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); @@ -614,17 +661,29 @@ void Form_Task(void *p_arg) " 日期", " 时间", " 罐箱号 ", "液位(mmWC)", "质量(kg)", "百分比", "压力(MPa)", "温度(℃)", "报警", "故障", " PSN "); data.count = strlen(data.str); DWIN_Refresh(&data); + data.oper = DWIN_OPER_WRITE; data.Addr = gridWarn.hdrAddr+0x2000; sprintf(data.str, " %5s %5s %11s %10s %8s %6s %9s %6s %4s %4s %13s", " data", " time", "Number_Box", "Level(mmWC)", "Qual(kg)", "Per(%)", "Pres(MPa)", "T(deg)", "Warn", "Err", " PSN "); data.count = strlen(data.str); DWIN_Refresh(&data); + + data.oper = DWIN_OPER_WRITE; + data.Addr = gridBox.hdrAddr; + sprintf(data.str, " %11s %13s %11s %13s %11s %13s ", + " BOX ", " PSN "," BOX ", " PSN "," BOX ", " PSN "); + data.count = strlen(data.str); + DWIN_Refresh(&data); + // 设置曲线的纵坐标 // 绿轴:液位(百分比) data.oper = DWIN_OPER_WRITE; data.Addr = 0x6580; - strcpy(data.str, " 液位-%"); + if(dcBuff.configDisplay.ch_en) + strcpy(data.str, " Level-%"); + else + strcpy(data.str, " 液位-%"); data.count = strlen(data.str); DWIN_Refresh(&data); axisMax = 100; @@ -640,7 +699,10 @@ void Form_Task(void *p_arg) // 黄轴:压力(MPa) data.oper = DWIN_OPER_WRITE; data.Addr = 0x6590; - strcpy(data.str, "压力-MPa"); + if(dcBuff.configDisplay.ch_en) + strcpy(data.str, "pressure-%"); + else + strcpy(data.str, "压力-MPa"); data.count = strlen(data.str); DWIN_Refresh(&data); axisMax = 5; @@ -656,7 +718,10 @@ void Form_Task(void *p_arg) // 红轴:温度(℃) data.oper = DWIN_OPER_WRITE; data.Addr = 0x65A0; - strcpy(data.str, "温度-℃"); + if(dcBuff.configDisplay.ch_en) + strcpy(data.str, "Temperature-%"); + else + strcpy(data.str, "温度-℃"); data.count = strlen(data.str); DWIN_Refresh(&data); axisMax = 90; @@ -676,10 +741,10 @@ void Form_Task(void *p_arg) // 开机画面等待4秒 osDelay(3000); // 跳转到首页 - if(dcBuff.configDisplay.ch_en) - Form_SwitchPage(50); - else - Form_SwitchPage(0); + if(dcBuff.configDisplay.ch_en) + Form_SwitchPage(50); + else + Form_SwitchPage(0); while(1) { @@ -717,19 +782,19 @@ void Form_Task(void *p_arg) } seconds = rf_get_seconds(); +//apex +// // LORA: 最新接收时间在3秒以内 +// val = (RF_initStatus && RF_seconds > 0 && RF_seconds + 3 > seconds); +// if(last_lora != val) +// { +// data.oper = DWIN_OPER_WRITE; +// data.Addr = 0x5002; +// data.count = 2; +// data.word[0] = htons(val); +// DWIN_Refresh(&data); - // LORA: 最新接收时间在3秒以内 - val = (RF_initStatus && RF_seconds > 0 && RF_seconds + 3 > seconds); - if(last_lora != val) - { - data.oper = DWIN_OPER_WRITE; - data.Addr = 0x5002; - data.count = 2; - data.word[0] = htons(val); - DWIN_Refresh(&data); - - last_lora = val; - } +// last_lora = val; +// } // GPS标志: 最新定位时间在180秒以内 if(dcBuff.dtuData.posState) @@ -755,7 +820,7 @@ void Form_Task(void *p_arg) Form_ClearMessage(); } // 每30秒统计一次设备数量 - if(RTC_offsetSeconds > 0 && seconds >= statisSeconds) + if(/*RTC_offsetSeconds > 0 &&*/ seconds >= statisSeconds) { statisSeconds = seconds + 30; @@ -1253,7 +1318,14 @@ uint8_t Form_ModifyPSN(form_data_t *key, char *msg) char str[26]; uint8_t len, i = 0; u16 serial = 0; - const static char errMsg[20] = "PSN输入有误!"; + char errMsg[20] = "PSN输入有误!"; + char errMsgEn[20] = "PSN incorrect"; + if(dcBuff.configDisplay.ch_en) + { + + strcpy(errMsg, errMsgEn); + + } // 读取PSN while(i < key->count && key->byte[i] != 0xFF && key->byte[i] != 0) @@ -1313,7 +1385,7 @@ uint8_t Form_GetQuery(uint16_t func, char *msg) uint8_t len, i; u16 serial = 0, y = 2000, m = 1, d = 1; - const static char errMsg[5][20] = + char errMsg[5][20] = { "通信故障!", "罐箱号输入有误!", @@ -1321,6 +1393,20 @@ uint8_t Form_GetQuery(uint16_t func, char *msg) "起始日期输入有误!", "查询天数输入有误!" }; + char errMsgEn[5][20] = + { + "Commu failure!", + "Box number err", + "The PSN err", + "startdate err.", + " days err" + }; + if(dcBuff.configDisplay.ch_en) + { + for (i = 0; i < 5; ++i) { + strcpy(errMsg[i], errMsgEn[i]); + } + } // 读取罐箱号 if(!Form_ReadStr(0x5E00, str, sizeof(str))) @@ -1498,14 +1584,20 @@ uint8_t Form_PreQuery() // 储罐要判断是否离线 if(formQuery.func == 1 && RTC_offsetSeconds == 0) { - Form_DispMessage("尚未获取基站时间!", DWIN_COLOR_RED); + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("The time not obtained!", DWIN_COLOR_RED); + else + Form_DispMessage("尚未获取基站时间!", DWIN_COLOR_RED); return 0; } // 曲线只能查询唯一PSN的数据 if(formQuery.func == 3 && !formQuery.tgguFlag && !formQuery.psnFlag) { - Form_DispMessage("请输入罐箱号或PSN!", DWIN_COLOR_RED); + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("Enter the Box number or PSN", DWIN_COLOR_RED); + else + Form_DispMessage("请输入罐箱号或PSN!", DWIN_COLOR_RED); return 0; } @@ -1516,12 +1608,18 @@ uint8_t Form_PreQuery() idx = Ext_Lookup_Box_TGGU(formQuery.TGGU, boxCnt.count); if(idx == -1) { - Form_DispMessage("无此罐箱号!", DWIN_COLOR_RED); + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("There is no box number", DWIN_COLOR_RED); + else + Form_DispMessage("无此罐箱号!", DWIN_COLOR_RED); return 0; } if(formQuery.psnFlag && memcmp(formQuery.PSN, boxTGGU[idx].PSN, 6) != 0) { - Form_DispMessage("罐箱号和PSN冲突!", DWIN_COLOR_RED); + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("Box number conflicts with PSN", DWIN_COLOR_RED); + else + Form_DispMessage("罐箱号和PSN冲突!", DWIN_COLOR_RED); return 0; } // 记录PSN,用于查询显示 @@ -1548,13 +1646,23 @@ uint8_t Form_PreQuery() formData.Addr = gridQuery.hdrAddr; if(formQuery.func == 1) { - sprintf(formData.str, " %4s %11s %6s %9s %8s %4s %4s %4s %13s %5s %5s %7s", - "序号", " 罐箱号 ", "百分比", "压力(MPa)", "温度(℃)", "报警", "故障", "离线", " PSN ", "日期", "时间", "电压(v)"); + if(dcBuff.configDisplay.ch_en) + sprintf(formData.str, " %4s %11s %6s %9s %8s %4s %4s %4s %13s %5s %5s %7s", + "Num", " Box_number ", "Percentage", "Press(MPa)", "Temp(℃)", "Alarm", "Err", "Offline", " PSN ", "Date", "Time", "Vol(v)"); + + else + sprintf(formData.str, " %4s %11s %6s %9s %8s %4s %4s %4s %13s %5s %5s %7s", + "序号", " 罐箱号 ", "百分比", "压力(MPa)", "温度(℃)", "报警", "故障", "离线", " PSN ", "日期", "时间", "电压(v)"); } else if(formQuery.func == 2) { - sprintf(formData.str, " %5s %5s %11s %10s %8s %6s %9s %8s %4s %4s %13s", - " 日期", " 时间", " 罐箱号 ", "液位(mmWC)", "质量(kg)", "百分比", "压力(MPa)", "温度(℃)", "报警", "故障", " PSN "); + if(dcBuff.configDisplay.ch_en) + sprintf(formData.str, " %5s %5s %11s %10s %8s %6s %9s %8s %4s %4s %13s", + "Data", "Time", " Box_number ", "Level(mmWC)", "m(kg)", "Percent", "Press(MPa)", "Temp(℃)", "Alarm", "Err", " PSN "); + + else + sprintf(formData.str, " %5s %5s %11s %10s %8s %6s %9s %8s %4s %4s %13s", + " 日期", " 时间", " 罐箱号 ", "液位(mmWC)", "质量(kg)", "百分比", "压力(MPa)", "温度(℃)", "报警", "故障", " PSN "); } len = strlen(formData.str); memset(formData.str + len, ' ', sizeof(formData.str) - len); @@ -1704,7 +1812,12 @@ void Form_QueryBox(int32_t lastRec) } if(row < gridQuery.rowCount) - Form_DispMessage("没有更多记录!", DWIN_COLOR_GREEN); + { + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("There are no more records.", DWIN_COLOR_RED); + else + Form_DispMessage("没有更多记录!", DWIN_COLOR_GREEN); + } else { Form_ClearMessage(); @@ -1747,7 +1860,10 @@ void Form_QueryData(int32_t lastRec) FRAM_BufferRead(FRAM_BOTTLE_DATA_BASE + sizeof(ext_bottle_t) * bottlePSN[idx].recNo, (uint8_t *) &bottleRec, sizeof(ext_bottle_t)); if(idx < 0 || bottleRec.lastData < 0) { - Form_DispMessage("无此PSN的数据!", DWIN_COLOR_RED); + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("There is no data for PSN", DWIN_COLOR_RED); + else + Form_DispMessage("无此PSN的数据!", DWIN_COLOR_RED); return; } @@ -1894,7 +2010,12 @@ void Form_QueryData(int32_t lastRec) } if(row < gridQuery.rowCount) - Form_DispMessage("没有更多记录!", DWIN_COLOR_GREEN); + { + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("There are no more records.", DWIN_COLOR_GREEN); + else + Form_DispMessage("没有更多记录!", DWIN_COLOR_GREEN); + } else { Form_ClearMessage(); @@ -1983,7 +2104,10 @@ void Form_QueryCurve(int32_t lastRec) if(idx < 0 || bottleRec.lastData < 0) { Form_ClearCurves(); - Form_DispMessage("无此PSN的数据!", DWIN_COLOR_RED); + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("There is no data for PSN", DWIN_COLOR_RED); + else + Form_DispMessage("无此PSN的数据!", DWIN_COLOR_RED); return; } @@ -2262,9 +2386,19 @@ void Form_QueryCurve(int32_t lastRec) if(temprCnt == 0) Form_ClearCurve(temprAddr); if(levelCnt == 0 && pressCnt == 0 && temprCnt == 0) - Form_DispMessage("无此时间段内的数据!", DWIN_COLOR_GREEN); + { + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("No data for this time period", DWIN_COLOR_GREEN); + else + Form_DispMessage("无此时间段内的数据!", DWIN_COLOR_GREEN); + } else if(lastRec < 0) - Form_DispMessage("无更早时间的数据!", DWIN_COLOR_GREEN); + { + if(dcBuff.configDisplay.ch_en) + Form_DispMessage("No data from an earlier time", DWIN_COLOR_GREEN); + else + Form_DispMessage("无更早时间的数据!", DWIN_COLOR_GREEN); + } else Form_ClearMessage(); @@ -2330,8 +2464,7 @@ void Form_About() void Form_En_About() { uint8_t row = 0; - - sprintf(gridAboutEn.rowStr[row++], "PSN of Device: 20%02d%02d%02d%02d%03d", + sprintf(gridAboutEn.rowStr[row++], " PSN: 20%02d%02d%02d%02d%03d", dcBuff.configBottle.PSN[0], dcBuff.configBottle.PSN[1], dcBuff.configBottle.PSN[2], dcBuff.configBottle.PSN[3], (dcBuff.configBottle.PSN[4] << 8) | dcBuff.configBottle.PSN[5]); sprintf(gridAboutEn.rowStr[row++], " Hard ver: %d.%d, Soft ver: %d.%d, data:20%02d-%02d-%02d", @@ -2350,6 +2483,68 @@ void Form_En_About() Form_RefreshGrid(&gridAboutEn); } +static int16_t topPtr=0; +void Form_BOX_PSN() +{ + int i=0; + uint8_t row = 0; + int16_t rowCount=0; + topPtr=0; + rowCount=gridBox.rowCount; + if(rowCount>30)rowCount=30; + for(i=0; i30)rowCount=30; + memset(gridBox.rowStr, 0, sizeof(gridBox.rowStr)); + for(i=0; i> 8; - boxRec.PSN[5] = ((10 + i * 10) % 1000) & 0xFF; - strcpy(boxRec.TGGU, "TGGU2000010"); - boxRec.TGGU[7] = '0' + (1 + i) / 100; - boxRec.TGGU[8] = '0' + (1 + i) % 100 / 10; - boxRec.TGGU[9] = '0' + (1 + i) % 10; + boxRec.PSN[0] = 26; + boxRec.PSN[3] = (0 + i * 1) / 1000; + boxRec.PSN[4] = ((0 + i * 1) % 1000) >> 8; + boxRec.PSN[5] = ((0 + i * 1) % 1000) & 0xFF; + strcpy(boxRec.TGGU, "TGGU2000000"); + boxRec.TGGU[7] = '0' + (0 + i) / 100; + boxRec.TGGU[8] = '0' + (0 + i) % 100 / 10; + boxRec.TGGU[9] = '0' + (0 + i) % 10; FRAM_BufferWrite(FRAM_BOX_DATA_BASE + sizeof(ext_box_t) * i, (uint8_t *) &boxRec, sizeof(ext_box_t)); } FRAM_SaveInfo(FRAM_BOX_INFO_BASE, (uint8_t *) &boxCnt, sizeof(ext_count_t)); diff --git a/Anjiehui7_DTU/User/modbus_slave.c b/Anjiehui7_DTU/User/modbus_slave.c index 1b99bb8..8979b4c 100644 --- a/Anjiehui7_DTU/User/modbus_slave.c +++ b/Anjiehui7_DTU/User/modbus_slave.c @@ -12,6 +12,20 @@ uint8_t Modbus_SendM_Data[sizeof(ext_data_t) * (MODBUS_SENDM_DATA_COUNT + 1)] = // RF串口接收的消息通知 SemaphoreHandle_t Modbus_SendQ = NULL; // 二值信号量句柄 +typedef struct +{ + uint8_t id; // 通信地址 + uint8_t cmd; // 功能码 + uint8_t index; // 包序号 + uint8_t all; // 包数 +// union +// { +// uint16_t cnt; // 读取:寄存器数量 +// uint16_t data; // 写入:寄存器数据 +// }; +// uint16_t crc; +} modbus_request_t; + #pragma pack(pop) // 发送心跳报文缓冲 @@ -20,12 +34,20 @@ uint8_t Heart_sendBuff[HEART_SENDBUFF_SIZE]; // 发送数据报文缓冲 uint8_t Modbus_sendBuff[TASK_SENDBUFF_SIZE]; +void ReadModbus_Task(uint8_t c); static void RS485_SendDataByte(uint8_t *pu8TxBuf, uint32_t u32WriteBytes) { /* Send data */ UART_Transmit(&huart4, pu8TxBuf, u32WriteBytes); } +void Slave_IRQHandler(USART_Handle *huart) +{ + uint8_t u8DTU = (uint8_t) huart->Instance->DR; + + /* Handle received data */ + ReadModbus_Task(u8DTU); +} void Modbus_Open() { @@ -127,3 +149,134 @@ void Modbus_Task(void *p_arg) } } } + +// 处理modbus rtu命令(已经验证过长度和CRC的包) +void MODBUS_RTU_CMD(modbus_request_t *req) +{ +// static uint8_t BUFF[(MODBUS_LAST_REG - MODBUS_1ST_REG + 1) * 2 + 6]; // 响应包 +// uint8_t err = 0; // 错误代码 +// uint8_t len = 0; // 发送数据长度 + +// uint16_t id; // 通信地址 +// uint16_t reg; // 数据地址 +// uint16_t cnt; // 数据个数 +// uint16_t crc; + +// // 检查通信地址 +// if(req->id != dcBuff.configBottle.addr && req->id != 0) +// return; +// +// // 清空发送帧 +// memset(BUFF, 0, sizeof(BUFF)); + +// BUFF[len++] = dcBuff.configBottle.addr; // 从机地址 +// BUFF[len++] = req->cmd; // 命令代码 + +// reg = ntohs(req->reg); // 数据寄存器 +// if(req->cmd == 0x03 || req->cmd == 0x06) +// reg += 40001; +// else if(req->cmd == 0x04) +// reg += 30001; +// else +// err = MODBUS_ERR_ILF; // 无效功能码 +// +// if(err == 0) +// { +// if(req->cmd == 0x03) // 读保持数据 +// { +// cnt = ntohs(req->cnt); // 参数个数 +// if(reg != MODBUS_ADR_REG || cnt != 1) +// err = MODBUS_ERR_NAK; // 命令无法执行 +// else +// { +// // 用最新的通讯地址刷新缓冲 +// id = htons(dcBuff.configBottle.addr); +// BUFF[len++] = 2; // 数据长度 +// memmove(BUFF + len, (uint8_t *) &id, 2); +// len += 2; +// } +// } +// else if(req->cmd == 0x06) // 设置数据 +// { +// if(reg != MODBUS_ADR_REG) +// err = MODBUS_ERR_NAK; // 命令无法执行 +// else +// { +// id = ntohs(req->data); + +// if(id < 1 || id > 247) +// err = MODBUS_ERR_ILD; // 无效数据值 +// else +// { +// // 设置地址并保存 +// dcBuff.configBottle.addr = id; +// Config_SaveConfig(); +// +// BUFF[0] = id; // 新地址 +// memmove(BUFF + len, &req->reg, 4); // 数据地址和通讯地址 +// len += 4; +// } +// } +// } +// else if(req->cmd == 0x04) // 读输入数据 +// { +// cnt = ntohs(req->cnt); // 参数个数 +// if(reg < MODBUS_1ST_REG || reg > MODBUS_LAST_REG || cnt < 1 || reg + (cnt - 1) > MODBUS_LAST_REG) +// err = MODBUS_ERR_NAK; // 命令无法执行 +// else +// { +// // 用最新的采集数据刷新缓冲 +// if(!Fill_MODBUS_RTU_Buf()) +// return; +// +// BUFF[len++] = cnt * 2; // 数据长度 +// memmove(BUFF + len, MODBUS_RTU_Buf + (reg - MODBUS_1ST_REG) * 2, cnt * 2); +// len += cnt * 2; +// } +// } +// } +// +// if(err != 0) +// { +// BUFF[1] |= 0x80; // 错误指示 +// BUFF[len++] = err; // 错误代码 +// } + +// // 计算CRC +// crc = MODBUS_RTU_CRC16(BUFF, len); +// crc = htons(crc); + +// memmove(BUFF + len, &crc, 2); +// len += 2; + +// if(req->id != 0) +// { +// // 发送应答 +// RS485_SendDataByte(BUFF, len); +// } +} + +// 任务主体 +void ReadModbus_Task(uint8_t c) +{ + static uint8_t BUFF[sizeof(modbus_request_t)] = {0}; + static uint8_t len = 0; + + // 取数据 + BUFF[len++] = c; + + // 验证长度和CRC值 + if(len == sizeof(modbus_request_t)) + { + if(MODBUS_RTU_CRC16(BUFF, sizeof(modbus_request_t)) == 0) + { + MODBUS_RTU_CMD((modbus_request_t *) BUFF); + len = 0; + } + else + { + // 丢掉第一个字节 + memmove(BUFF, BUFF + 1, --len); + } + } +} diff --git a/Anjiehui7_DTU/User/uart_RFGateway.c b/Anjiehui7_DTU/User/uart_RFGateway.c index 94902dc..67ea6b4 100644 --- a/Anjiehui7_DTU/User/uart_RFGateway.c +++ b/Anjiehui7_DTU/User/uart_RFGateway.c @@ -735,7 +735,7 @@ void RF_GatewayTask(void *p_arg) if(RTC_offsetSeconds == 0) { printf("\nRTC_offsetSeconds = 0, ignored ...\n"); -//apex continue; + continue; } // 处理帧