реклама на сайте
подробности

 
 
> Работа со строкой., STM32F103
Jenya7
сообщение Nov 18 2013, 07:47
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Я принимаю строку с терминала. Знак принятия строки - возврат каретки (клавиша ENTER), который я отбрасываю.
CODE
void ParseString(char *str)
{
//split command and argument from string - space separated
char *command;
char *argument;
command = strtok(str," ");
argument = strtok(NULL," ");
UsartSendInt(strlen(argument)); // for debug
if(strcmp(command,"test")==0)
{
if(strlen(argument) == 0)
{
UsartSendString("No argument\r");
}
else
{
UsartSendString("There is an argument\r");
}
}
}

Если я ввожу, скажем, ”test 100 ” все работает как надо - я вижу ответ - There is an argument.
Если я ввожу только ”test” - я попадаю туда же.
Чтобы понять, где проблема я вывожу длину аргумента на терминал.
Получается что даже если аргумент пустой длина аргумента - 2.
Код
2
There is an argument.

В чем проблема? В AVR все работало как надо.
Еще добавлю - я работаю в IAR.

Сообщение отредактировал Jenya7 - Nov 18 2013, 07:49
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovigor
сообщение Nov 18 2013, 08:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Jenya7 @ Nov 18 2013, 11:47) *
Я принимаю строку с терминала.

А вы передатчик этого порта соедините с приемником другого порта той же машины (если в ней два порта) или же соедините этот передатчик с приемником другой машины. Потом на этой, приемной, машине запустите терминалку, которая позволяет отображать HEX - коды, а не ASCII - символы. Это умеет делать, например, терминалка, входящая в состав среды разработки CodeVision. Так вы узнаете, что реально принимает ваш МК.
Для справки. При нажатии "ENTER" в порт почти наверняка уходит два символа, а не один - "Возврат каретки" (0x0d) и "Перевод строки" (0x0a). Еще дополнение. Код пробела - 0x20. Как его интерпретирует ваша функция - тоже вопрос ...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 06:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016