Гость MagicianT

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

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

Гость MagicianT   
Гость MagicianT

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

  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 и не могу найти. Библиотеки есть готовые? Примеры я нашёл, на интераптах, убогие примерчики - там чтобы до ума довести надо кольцевые буфферы дописывать, данные форматировать и т.д.

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

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


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

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

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

Надо?

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

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


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

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

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

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


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

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

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

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

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

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

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

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Сообщения

    • чё орёшь то? не ОБЕСПЕЧИВАЕТ я писал.
    • 4 полностью заряженых акб ли-ион дадут вам 4,2*4=16,8В. Поэтому вам нужен блок питания , который на выходе даст 17В (1. чтобы заряжать АКБ; 2. чтобы при полностью заряженых акб усь питался от блока, а не подсасывал акб). Ток блока питания не менее 3А, чтобы и питать усь и заряжать акб током 1А (при самых плохих раскладах). Естественно, усь должен работать в диапазоне от 3,5*4=14В до 17-18В. Тогда все просто: от БП через диод на усь и от БП через модуль заряда (+балансир) на АКБ, с АКБ через (возможно бмс плату защиты) диод - на усь. Это самый простой вариант без преобразователей и пр. 
    • благодарю, уже что то.
    • Конденсатором C11. Но я его менял в большую сторону и меньше ставил . Меняется только частота фона и всё. Просто у меня нет осциллографа. На ощупь приходится делать. Но на днях возьму осциллограф. Я так понял нужно замерять после дросселя. В чём будет отличие сигнала когда усилитель в резонанс вошёл и нет.
    • наверно надо думать буду питать от 14в батареи 18650 2 а где-то    4 батареи   
    • Действительно на нескольких форумах данный вопрос.  Я не знал где лучше задать вопрос! В принципе вчера только один человек и отвечал по всем форумам Извиняюсь! ir2016j - копир к компьютеру не подключается! Разве только для прошивки через USB разъем.  Первоначально на копире термопленку заменили. Съехала в сторону. Периодически он подвисал и до и после замены . После замены пленки через месяц вообще перестал грузиться. В последние дней 5 (жизни ) включался со счетчиком только с утра. (почему не пойму до сих пор) Блок питания был проверен в первую очередь. Когда копир не запускался а подвисал. На дисплее черный квадрат был и не засвечивался. Питания все 3.3в 5в 24в в норме . Подозрение было на 3.3в небольшая пульсация. в блоке питания стоит два стабилизатора на 5 в оба сигнала отличные. А 3.3в только конденсаторами сглаживаются.  Электролиты еср-метром проверял. Питание осциллографом измерял на предмет пульсации в  плоть до платы управления .  Во время работы и в повисшем состоянии. Копир запустился без платы счетчика! При печати отчетов не было ошибок! Подозреваю они хранятся на плате счетчика. Если не там - исправьте! Несколько раз ставил и снимал счетчик. без счетчика ошибка со счетчиком - не грузится. Решил вставить счетчик в работающий аппарат в спящем режиме. Он запустился но ошибка так и осталась. Затем произвел сброс всех настроек в аппарате и после этого копир начал включаться без проблем!!!!   Завтра поиски продолжу.  Счетчик - одна микросхема FRAM MB85R256 и смд конденсатор. Теоретически можно списать и поставить другую. Микросхема до 200 грн а плата до 2000 стоит.(Нигде в интернете не видел описания такого)  Не знаю - Если ошибка высвечивается в другом таком копире висит номер ее и кнопки меню реагируют или нет? у меня висит copy Еще в  отчете Spec List  позиция OPTYION ROM в сервисной инструкции стоит 32MB у меня - 0 Еще после зависания не добавляются листы в счетчики которые выводятся по нажатию кнопки 123 . Прошить можно - но сомневаюсь что поможет!  Пока думаю! Рассмотрю все советы.