Проблема с получением более одного символа
Здравствуйте! после того, как,
Я новичок, занимающийся проектами с TTN
В настоящее время я работаю с микрочипом SAMR34.Я пытался сделать проект, где он считывает введенный номер и dsiplays его, enetred номер можно увидеть с помощью эмулятора. Я использовал TeraTerm для этой цели.
Последовательный обработчик данных, приведенный в примере проекта, считывает только один символ, я изменил код таким образом, чтобы он считывал более одного символа одновременно.Полученное значение хранится int в буфере SerialBuffer, но как только номер вводится для запроса соединения, он останавливает процесс подачи заявки и не движется дальше.
Приведенный ниже код является формой примера проекта:
static char SerialBuffer; void serial_data_handler(void) { int rxChar; char serialData; /* verify if there was any character received*/ if (startReceiving == true) { if((-1) != (rxChar = sio2host_getchar_nowait())) { serialData = (char)rxChar; if((serialData != ‘\r’) && (serialData != ‘\n’) && (serialData != ‘\b’)) { startReceiving = false; serialBuffer = rxChar; appPostTask(PROCESS_TASK_HANDLER); printf("\r\n"); } } } }
Что я уже пробовал:
то, что я пробовал: но это не работает !
void serial_data_handler(void) { // uint8_t rxChar; char serialData; char arr[10]; char recv; int i = 0; int value; recv = 0x00; /* verify if there was any character received*/ if (startReceiving == true) { while(('\n' != recv)&&('\r' != recv) && ('\b' != recv)) { recv = sio2host_getchar(); arr[i] = recv; i++; } //startReceiving = false; value =(int)atoi(arr); serialBuffer = value; appPostTask(PROCESS_TASK); } }если у кого-то есть какие-то идеи, пожалуйста, поделитесь ими . Это было бы большим подспорьем!
Спасибо