更新串口接收方式。

This commit is contained in:
xinyang
2019-07-16 12:15:14 +08:00
parent 829fb85b0c
commit 89344d1cd5
2 changed files with 6 additions and 15 deletions

View File

@@ -30,27 +30,18 @@ extern ArmorFinder armorFinder;
extern Energy energy; extern Energy energy;
void uartReceive(Serial *pSerial) { void uartReceive(Serial *pSerial) {
char buffer[20]; char buffer[30];
int cnt = 0;
LOGM(STR_CTR(WORD_LIGHT_WHITE, "data receive start!")); LOGM(STR_CTR(WORD_LIGHT_WHITE, "data receive start!"));
while (true) { while (true) {
char byte = 0; char byte = 0;
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
while (pSerial->ReadData((uint8_t *) &byte, 1) && byte != '\n') { pSerial->ReadData((uint8_t *) &byte, sizeof(mcuData)+1);
buffer[cnt++] = byte; if (buffer[sizeof(mcuData)] == '\n') {
if (cnt >= sizeof(buffer)) {
// LOGE("data receive over flow!");
cnt = 0;
}
}
if (cnt == 0 && byte == '\n') {
LOGM("%d", cnt);
}
if (cnt == sizeof(mcuData)) {
memcpy(&mcuData, buffer, sizeof(mcuData)); memcpy(&mcuData, buffer, sizeof(mcuData));
LOGM("Get, state:%c, mark:%d!", mcuData.state, (int) mcuData.mark); LOGM("Get, state:%c, mark:%d!", mcuData.state, (int) mcuData.mark);
}else{
LOGW("corrupt data!");
} }
cnt = 0;
} }
} }

View File

@@ -191,7 +191,7 @@ Serial::Serial(int nSpeed, char nEvent, int nBits, int nStop) :
nSpeed(nSpeed), nEvent(nEvent), nBits(nBits), nStop(nStop) { nSpeed(nSpeed), nEvent(nEvent), nBits(nBits), nStop(nStop) {
if (wait_uart) { if (wait_uart) {
LOGM("Wait for serial be ready!"); LOGM("Wait for serial be ready!");
while (InitPort(nSpeed, nEvent, nBits, nStop) == false); while (!InitPort(nSpeed, nEvent, nBits, nStop));
LOGM("Port set successfully!"); LOGM("Port set successfully!");
} else { } else {
if (InitPort(nSpeed, nEvent, nBits, nStop)) { if (InitPort(nSpeed, nEvent, nBits, nStop)) {