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

 
 
> работа с COM портом, чтение из приёмного буфера
TigerSHARC
сообщение Feb 21 2011, 10:17
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Здравствуйте!
Никак не могу правильно прочитать данные из COM-порта.

Мой процессор отправляет в компорт в бесконечном цикле (каждые 156 мкс) int-число и две эскейп последовательности в таком виде

int d = 123;
printf("%d"\r\n, d); //отправляю в порт

Теперь моя задача считать на компьютере эти данные в такую же переменную. Посредствам стандартных средств в СBuilder я заливаю всё что передаёться в COM-пот в массив чаров buf зармером 255.

Вопрос: как считывать последовательно эти данные из массива buf в переменную типа int?
Как я понимаю нужно как то логически в цикле разделять набор чисел в массиве buf, а затем преобразовывать в int. Но конструкцию никак не придумаю(((((
буду признателен за любую помощь.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Zelepuk
сообщение Feb 21 2011, 11:01
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Что за аtoi ?

Функция printf посылает в порт микроконтроллера числа. Со стороны микроконтроллера всё впорядке. Мне же нужно со стороны хоста(бытовой компьютер) разобрать по сути непрерывный поток чаров в буфере buf и получить числа int, которые в этом потоке передаются, разделяемые esc-последовательностями (\n\r)



Блин, опять с чужого компа зажёл... сорри)

Сообщение отредактировал Zelepuk - Feb 21 2011, 13:16
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 21 2011, 18:21
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Zelepuk @ Feb 21 2011, 14:01) *
Функция printf посылает в порт микроконтроллера числа... разделяемые esc-последовательностями (\n\r)

Функция printf имеет "зеркальную" функцию scanf (или родственные ей - fscanf, sscanf) - на персоналке используйте одну из них. Символы \n\r имеют шестнадцатиричные коды 0A и 0D - "перевод строки" и "возврат каретки".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TigerSHARC   работа с COM портом   Feb 21 2011, 10:17
- - skripach   Цитатаprintf("%d"\r\n, d); pri...   Feb 21 2011, 10:50
|- - zltigo   QUOTE (skripach @ Feb 21 2011, 13:50) Исп...   Feb 21 2011, 18:44
- - zombi   Как организован доступ к вашему буферу? Какому чис...   Feb 21 2011, 16:32
- - sergeeff   У вас какая скорость передачи в COM? Скорее всего ...   Feb 21 2011, 18:19
|- - RabidRabbit   Цитата(sergeeff @ Feb 21 2011, 21:19) У в...   Feb 21 2011, 18:27
||- - ViKo   Цитата(RabidRabbit @ Feb 21 2011, 20:27) ...   Feb 21 2011, 18:58
||- - sergeeff   Цитата(ViKo @ Feb 21 2011, 21:58) А если ...   Feb 21 2011, 19:24
||- - zltigo   QUOTE (ViKo @ Feb 21 2011, 21:58) atoi ка...   Feb 21 2011, 23:10
||- - ViKo   Цитата(zltigo @ Feb 22 2011, 01:10) Дело ...   Feb 22 2011, 07:43
||- - zltigo   QUOTE (ViKo @ Feb 22 2011, 10:43) в C99 о...   Feb 22 2011, 10:55
|- - TigerSHARC   Цитата(sergeeff @ Feb 21 2011, 21:19) У в...   Feb 21 2011, 18:31
|- - sergeeff   Цитата(TigerSHARC @ Feb 21 2011, 21:31) П...   Feb 21 2011, 18:47
|- - TigerSHARC   Цитата(sergeeff @ Feb 21 2011, 21:47) Вы ...   Feb 21 2011, 19:21
|- - ViKo   Цитата(TigerSHARC @ Feb 21 2011, 21:21) к...   Feb 21 2011, 19:24
- - TigerSHARC   За ссылку про кольцевой буфер спасибо. А задача у...   Feb 21 2011, 18:21
- - TigerSHARC   Ребятааааа!!! Ну какой ещё ADC)))) ест...   Feb 21 2011, 20:02
|- - sergeeff   Цитата(TigerSHARC @ Feb 21 2011, 23:02) П...   Feb 21 2011, 20:17
- - TigerSHARC   Ладно, думаю всё это особенности общения на форуме...   Feb 21 2011, 20:32
- - _Pasha   Если не хватает скорости, но очень хочется именно ...   Feb 22 2011, 05:20
- - ar__systems   Цитата(TigerSHARC @ Feb 21 2011, 05:17) д...   Feb 26 2011, 14:00


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

 


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


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