3

UART библиотеки, нужен совет.

5 сообщений в этой теме

Програмировал на ардуино достаточно долго, пока  'ардуина-фобы' не убегайте, обьясню как в нём сериал линк удобно использовать. Допустим для отладки нужен командный интерфейс, регистов парочку поменять 'на лету'. Я там использовал типа такой кострукции;

  if( end_input) {
    char cmd = in_String[0];
    in_String[0] = '+';

    if( cmd == 'd' ) {
      debug_osm = 1 - debug_osm;
      if(debug_osm) Serial.print(F("\nDebug aktiv."));
      else          Serial.print(F("\nDebug de-aktiv."));
      }
    
    if( cmd == 'a' ) {
      adres_reg = strtol( in_String.c_str(), &pEnd, 16);
        Serial.print(F("\n\tReg: "));
        Serial.print(adres_reg, HEX);
      }
    if( cmd == 'w' ) {
        Serial.print(F("\n\tReg: "));
        Serial.print(adres_reg, HEX);
      value_reg = strtol( in_String.c_str(), &pEnd, 2);      
      i2c_w( adres_reg, value_reg );
        Serial.print(F("\tnew  value: "));
        Serial.print( value_reg, BIN);      
      if( error_i2c ) Serial.print(F("\t!ERROR"));
      else            Serial.print(F("\t!O'K"));
        error_i2c = 0;
      }

т.е. по серийнику с компа я отсылаю строку с буквами и цифрами, ардуина 'парсит' и в зависимости от буквы меняет адресс регистра, производит запись/считывание и т.д. Любую периферию или внутренние потроха в лёт поменять. Обратно там есть сериал.принт, понимает как слать на комп бин, октал, хекс и децимал, в интераптах.

Теперь вопрос - два дня ищу что-то подобное на стм32ф3/4 и не могу найти. Библиотеки есть готовые? Примеры я нашёл, на интераптах, убогие примерчики - там чтобы до ума довести надо кольцевые буфферы дописывать, данные форматировать и т.д.

Как сделать кли - команд лайн интерфейс на стм-э?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну я когда баловался с MP3 плейером (модулем), то использовал такой механизм. Но конкретных либ под это дело не использовал. Просто написал парсер и командный процессор и все работало. Могу дать код. Кольцевых буферов там нет, есть односимвольный буфер. Он цепляется на DMA и обрабатывается по мере поступления символов как строка с окончанием на \n. То есть из консоли можно слать что угодно и потом обрабатывать на свой вкус. Можете вычленить код и оформить в библиотеку.

До мегабита работает отлично, потом может пропускать символы. На 115200 вообще железобетон.

Надо?

Изменено пользователем mail_robot
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, нет. На дма тоже в примерах с эстиэма нашёл.

Хотелось бы,  в 5 разных файлов куда-то строки куда то функции каждый раз не вставлять. 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чтобы была библиотека, надо чтобы ее кто нибудь написал

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

3
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был востановлен.   Очистить редактор

Загрузка...

  • Сообщения

    • А давай лучше не будешь нам рассказывать сказки,а будешь учиться и практически познаешь всё это. Два минуса тебе за флуд!
    • GELIANIN, давайте не путать "теплое" и "мягкое" и не валить все в одну кучу. "Земляные" петли (термин "петля массы" встречаю первый раз!) приводят к возрастанию НАВОДОК; это, в свою очередь, ведет к увеличению ФОНА, а ШУМ здесь - вообще ни при чем.
    • Ну не знаю, может у меня IAR более новый). А кто - нибудь цеплял 1602 по I2C через переходник на PCF8574AT без библиотек, код инициализации у кого какой? Хотя я уже разный пробовал, даже с библиотечной ардуины брал код инициализации дисплея, меня вот волнует больше то что пишут в нете что  в HAL нужно адрес сдвинуть, но я находил чисто побитовый сдвиг у некоторых в коде, а в других местах читал что нужно учесть сдвиг адреса, так как там семибитная адресация, а восьмой бит задает режим чтение - запись, ну вот у меня сканер на ардуино показал адрес 0x3F, я его и вбиваю, может нужно его меньше задать, хотя ну 0x3F всего 6 бит.
    • Этот факт все знают. Нельзя делать петли связи по массе между блоками Аудиосистемы. Только не к возрастанию шума корректора приводит при измерении (как вы думаете) ,а возрастанию отображения шума Спектроанализатором от петли массы. А шум корректора как был таким и остаётся, уровень шума увеличивается  на экране от влияния факторов неверной разводки массы в звуковой карте,ведь она не разрабатывалась для измерений в дуплексном режиме,она просто должна выдавать звук на усилитель или наушники. Вот сейчас доделал очередной корректор,начну настраивать,снял для вас когда оба кабеля подключены и теперь во вход корректора воткнём кабель с оборванным экраном возле штеккера и сразу видно что 20dB шумов даёт петля массы в измериловке.  
    • Еще помогает генератор тока- нагрузка выхода блока питания, в место резистора на выходе.
    • Бухать нужно переставать, вот , что случилось.