Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Форматирование данных и передача даных UART

Непрочитано 15.01.2015, 20:55  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Это должна быть полноценная программа. Не с наскока. И окна и поток для приема из порта. Не скучно.
Реклама:
baiderin вне форума  
Непрочитано 15.01.2015, 21:08  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Сообщение от WindoЗavr Посмотреть сообщение
я борланд с++ установил, пытаюсь разобраться
а куда ваш код с парсингом вставлять?
У вас в программе должно быть какое-то место где принятые данные считываются из ComPort-а. Туда и вставлять - каждый байт передавать функции парсинга и проверять не пришло ли ещё новое значение АЦП.
Сообщение от WindoЗavr Посмотреть сообщение
там разные кнопки надо создавать, или окошки?
По разному бывает
- на C# есть компонент SerialPort (на MS Visual C++ оно тоже вроде есть)
- на Delphi я давно делал приём через WinApi но и компоненты для Delphi тоже какие-то есть в природе - может оно и для BC++ годится
Сообщение от WindoЗavr Посмотреть сообщение
показывалось в каком нибудь окошке, дальше я уже разберусь
Тогда и разбирать поток не надо - достаточно читать и в какой-нибудь TextBox (или что-то подобное) выводить как принялось.
_Артём_ вне форума  
Непрочитано 15.01.2015, 21:09  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Сообщение от baiderin Посмотреть сообщение
поток для приема из порта. Не скучно.
Ставится компонент с портом и все проблемы снимаются. А вот когда освоится Билдер, мозок мал-мал впитает информацию, что-то не понравится в компоненте - его можно сделать свой.
Готовый компонент ищите как "slycomm".
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 15.01.2015, 21:39  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

slycomm скачиваю, и исходники программ с ним


нагуглил такое
оно должно принимать данные с ком порта и выводить его на экран по мере приёма
но это не билдер, а что то древнее

Код:
#include ‹iostream›
#include ‹windows.h›
#include ‹conio.h›
#include ‹fstream›
using namespace std;

int main()
{
    char name[4]="com";
    char symbol='Q';
    char *number=new char;
    HANDLE hport;
    DWORD real_read;
    DCB dcb;
    BOOL succ;
    ofstream out;

    cout ‹‹"                     RECEPTION" ‹‹endl ‹‹endl;
    cout ‹‹"Enter number of com-port:";
    cin ››number;
    strcat(name,number);
    hport=CreateFile(name,GENERIC_READ,0,NULL,OPEN_EXI  STING,FILE_ATTRIBUTE_NORMAL,0);
    if(hport==INVALID_HANDLE_VALUE)
    {
        cout ‹‹"COM" ‹‹number ‹‹" WAS NOT OPEN !" ‹‹endl;
        getche();
        return 1;
    }
    out.open("002.txt",ios::trunc);
    if(!out)
    {
        cout ‹‹"file 002.txt was not open" ‹‹endl;
        getche();
        return 1;            
    }
    dcb.DCBlength=sizeof(dcb);
    succ=GetCommState(hport,&dcb);
    dcb.BaudRate=CBR_115200;
    dcb.ByteSize=8;
    dcb.Parity=EVENPARITY;
    dcb.StopBits=2;
    succ=SetCommState(hport,&dcb);
    while(true)
    {
        ReadFile(hport,&symbol,1,&real_read,NULL);
        if(int(symbol)==27) break;
        if(real_read==1) { out ‹‹symbol;  cout ‹‹symbol; }
    }
    out.close();
    CloseHandle(hport);
    return 0;
}

Последний раз редактировалось WindoЗavr; 15.01.2015 в 21:50.
WindoЗavr вне форума  
Непрочитано 15.01.2015, 23:07  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Сообщение от WindoЗavr Посмотреть сообщение
получается посылка типа _12_245_456_753_425_1005
проблема в том, что числа имеют разное количество знаков и на компьютере будет сложнее разделить их
Ну и проблема!
У Вас каждое число всё равно двумя байтами передаётся.
Поэтому со стороны компа нужно просто сделать с ними что-то вроде N=NHi*256+NLo, и получите своё число обратно.

Сообщение от WindoЗavr Посмотреть сообщение
но это не билдер, а что то древнее
Так COM-port - тоже древнее.
RECTO вне форума  
Непрочитано 15.01.2015, 23:26  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,458
Сказал спасибо: 3,227
Сказали Спасибо 3,512 раз(а) в 2,393 сообщении(ях)
ForcePoint на пути к лучшему
Стрелка Re: Форматирование данных и передача даных UART

Цитата:
Передавать словами
+100500. Пропускная способность канала связи лучше используется.
Цитата:
Как определить какой канал передаётся?
Если условия настольно-лабораторные и ПК не теряет данные при приёме, то тупо считать количество принятых слов и закольцовывать счётчик по нужному числу каналов.
Цитата:
Как парсить на ПК?
Я складываю данные терминалки в файл и потом просматриваю "на холодке". Свой парсер давал в этой теме.
ForcePoint вне форума  
Непрочитано 15.01.2015, 23:54  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

на счёт протокола передачи и парсинга
скорее всего сделаю передачу данных из 7 этапов
первое значение передалось, мк ждёт, пк подтвердил приём
второе значение передалось, мк ждёт, пк подтвердил приём
и так далее
а после шестого будет допустим код 101010 и контрольные суммы переданного
затем всё повторяется
таких циклов примерно 50 в секунду

этим уберу проблему помехозащищённости и сбивания подсчёта

ком порт потом на FT232 переведу, будет эмуляция ком порта по USB

Последний раз редактировалось WindoЗavr; 15.01.2015 в 23:57.
WindoЗavr вне форума  
Непрочитано 16.01.2015, 00:03  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Сообщение от WindoЗavr Посмотреть сообщение
что то древнее
Это консольный вариант, без GUI.
Сообщение от ForcePoint Посмотреть сообщение
Передавать словами
Конечно. В одной из соседних тем уже говорил, что проще передавать в ASCII hex-содержимое (инты), в этом случае начало пакета можно обозначить любой "нецифрой". Только несколько повозиться с переводом, но, используя стандартные функции, это не проблема.
Сообщение от ForcePoint Посмотреть сообщение
тупо считать количество принятых слов и закольцовывать счётчик по нужному числу каналов.
А где начало-конец кольца? Откуда счет?
WindoЗavr, что используете в качестве IDE для контроллера? Я, по большей части, ЦВ, хоть плевков сейчас будет море... Но он удобней, когда надо мелочь по-быстрому сваять.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 16.01.2015, 00:11  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

компьютер будет после приёма пакета данных давать разрешение на передачу следующего
WindoЗavr вне форума  
Непрочитано 16.01.2015, 00:21  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Если обмен по команде - вообще не проблема. Как угодно, но желательно контрольную сумму считать. Прямо инты складывать и передавать в хвосте.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Беспроводная передача данных 1кб/с , 3км. Как и чем? Zemlyanov Микроконтроллеры, АЦП, память и т.д 5 29.01.2015 10:02
Тормоза при передаче данных через UART в Bluetooth модуль rus_12345 Микроконтроллеры, АЦП, память и т.д 8 05.01.2015 19:39
Передача данных через UART в AVR микроконтроллерах. harry7777 AVR 54 09.11.2013 20:40
Передача данных в UART из текстового файла bombardier_rotax Proteus 6 24.02.2010 20:50
PIC16F877A pawelk Микроконтроллеры, АЦП, память и т.д 17 28.05.2005 23:54


Часовой пояс GMT +4, время: 17:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.