Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Передача данных/сообщений через COM port.

Пт янв 19, 2018 06:46:47

Доброго времени суток!Прошу опытных людей поделиться опытом, в каком "формате" происходит передача данных.
Имеется МК Microchip pic16f690 с USART преобразователь USART>USB>COM среда для написания программ ABC Pascal.
Контроллер настроен, проверен прием сообщений через терминальные прогрограммы. Написана программа принимающая данные с АЦП.
Теперь постараюсь изложить сам вопрос:

Стандартно при передачи в порт на МК (XC8 компилятор) выполняется команда Printf(), но добавляю символ \n.Получается так printf("AN)=%d",temp_ADC).temp_ADC переменная, где данные с ацп.

Прием в МК настроиваю по символу строки \n.Символ получил строка закончилась.

В ABS Pascal есть команда writline(), которая в заранее настреный порт отсылает данные.
Прием по команде ReadLine().

Допустим мне надо зажечь светодиод на МК.Прописываю в МК массив(команды):
1)
char Led_ON[]="Led On";
char Led_OFF[]="Led OFF";
2)
отсылаем в программе WritLine('Led ON')
3)
Считываем, через strcmp(buf_USART,Led_ON)) сравнием массивы и выдаем воздействие на светодиод.
Обмен информацией происходит при использовании этих функций в формате кода символов ASCII.

А как опытные люди выполняют прием/отсылку сообщений,все происходит в коде символов ASCII и использованием функций str***?

Добавлено after 2 minutes 1 second:
Почитал статью:
https://geektimes.ru/post/282176/
Понятно как правильно формировать сообщение, но тут уже обработка пакета пишется вручную.

Re: Передача данных/сообщений через COM port.

Пт янв 19, 2018 08:47:39

А как опытные люди выполняют прием/отсылку сообщений,..

можно так:
http://caxapa.ru/lib/wake/

Re: Передача данных/сообщений через COM port.

Пт янв 19, 2018 13:19:42

Понятно как правильно формировать сообщение, но тут уже обработка пакета пишется вручную.


Угу, вручную и пишется.

Re: Передача данных/сообщений через COM port.

Пт янв 26, 2018 17:57:52

Читайте https://m.habrahabr.ru/post/127890/
Ответить