Перейти к содержанию

STM32 для чайника


ART_ME

Рекомендуемые сообщения

 

7 минут назад, ART_ME сказал:

Вот теперь прояснилось, спасибо.

Как оказалось, Cube - это и есть тот самый набор макросов, о котором я спрашивал в первом же вопросе.

Но отсылка одного байта в STM32 макроса не требует. Видимо потому, что этот макрос прописан на уровне микропрограмм. 

Поэтому в случае необходимости отсылки массивов передо мной альтернатива: либо я сам пишу протокол отсылки этого массива, либо я

использую для этого библиотеку HAL. 

Правильно?

 

 

В общем правильно. Только термин "макрос" тут не причем. Функция - это не макрос.

2 минуты назад, ART_ME сказал:

Чтением чего именно? Всего, что написано про STM32?

Ну не всего, но даташит на МК, референсный даташит на семейство МК, мануал на реализацию Си и мануал на применяемый драйвер (например Cube) прочитать следует.

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

戦う前に相手のベルトの色に注目

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

1 минуту назад, my504 сказал:

 

В общем правильно. Только термин "макрос" тут не причем. Функция - это не макрос.

В моем понимании макрос - это функция за пределами системы команд.

Однако, если я прав, то

1. Библиотеки на Си пользователю на васике как корове седло.

2. При использовании нестандартных протоколов библиотеки стандартных протоколов... см. выше.

Если это действительно так, то зачем мне читать про то, чем я не буду пользоваться? 

 

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

9 минут назад, mail_robot сказал:

 

Цитата из Евангелия (только без обид)

"Если слепой ведет слепого, не оба ли упадут в яму?"

Если уж Вы цитируете Евангелие, то потрудитесь хотя бы В ЭТО ВРЕМЯ соблюдать христианские заповеди.

Гордыня и кичливость не имеют отношения к христианским добродетелям. Тем более, что Ваша методика объяснений не достигла результата...

1 минуту назад, ART_ME сказал:

В моем понимании макрос - это функция за пределами системы команд.

Однако, если я прав, то

1. Библиотеки на Си пользователю на васике как корове седло.

2. При использовании нестандартных протоколов библиотеки стандартных протоколов... см. выше.

Если это действительно так, то зачем мне читать про то, чем я не буду пользоваться? 

 

Проблема ограниченного познания в том, что каждый новый вопрос так же сложен, как и предыдущий, ибо нет ПОНИМАНИЯ происходящего. Микроконтроллер - это не ПК. И кодить его без понимания работы железа и компилятора - сизифов труд.

戦う前に相手のベルトの色に注目

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Знание ПДД тоже делает из вас образцового водителя? А цитируя Коран я должен повернуться на восток?

8 минут назад, my504 сказал:

Тем более, что Ваша методика объяснений не достигла результата...

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

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

4 минуты назад, my504 сказал:

Проблема ограниченного познания в том, что каждый новый вопрос так же сложен, как и предыдущий, ибо нет ПОНИМАНИЯ происходящего. Микроконтроллер - это не ПК. И кодить его без понимания работы железа и компилятора - сизифов труд.

Ограниченное применение предполагает ограниченное познание.

STM32 планируется применять исключительно в случаях экономической нецелесообразности использования ПЛК или панели.

То бишь для примитивных функций вроде ввода значения концевика в панель по RS232.

 

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

5 минут назад, mail_robot сказал:

Знание ПДД тоже делает из вас образцового водителя?

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

Я упрекаю Вас не в незнании матчасти, а в общем в хамстве. Не желаете объяснять - не объясняйте вообще. А цедить по одному слогу с губы - это не объяснение. Что касается меня, то продвижка в понимании проблемы автором вопроса имеется. Это не делает оного автора великим специалистом, но так вопрос и не ставился.

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

戦う前に相手のベルトの色に注目

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

9 минут назад, mail_robot сказал:

Знание ПДД тоже делает из вас образцового водителя? А цитируя Коран я должен повернуться на восток?

 

mail_robot, я читал Вашу перепалку в соответствующей теме. И несмотря на то, что во многом я поддерживаю Вашу точку зрения, прошу воздержаться от засорения этой темы. Потому как есть все основания полагать, что вопросы от меня еще будут.

 

4 минуты назад, optima сказал:

Именно того что вас интересует в данный момент!

В этом момент я выяснил, что "надо трясти". А именно: убедить STM32 поработать нуль-модемом.

А для этого мне надо читать про настройку портов (а это и есть та самая инициализация) и про микровасик. 

 

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

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

7 минут назад, ART_ME сказал:

Ограниченное применение предполагает ограниченное познание.

STM32 планируется применять исключительно в случаях экономической нецелесообразности использования ПЛК или панели.

То бишь для примитивных функций вроде ввода значения концевика в панель по RS232.

 

Увы, работа с МК имеет особенностью понимание его работы В ЦЕЛОМ.

Относительно бездумным может быть только ногодрыг. Использование UARTа не относится к  "бездумным" задачам.

ЗЫ. Несмотря на дешевизну STM32F0, решение на нем совсем простых задач требует освоения большого объема документации. В отличие от 8-битных МК.

На них преобразование параметров датчика в посылку UART на Си - пару десяток строк кода, включая инициализацию.

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

戦う前に相手のベルトの色に注目

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

8 минут назад, my504 сказал:

А цедить по одному слогу с губы - это не объяснение

человек меня спрашивает - как выглядит синий цвет? Я ему говорю - посмотри на радугу, вторая полоска снизу и будет твой цвет. А он мне - неее, ты мне в двух словах опиши, мне так проще. Я ему должен что написать? Что синий это почти как желтый, только инвертированный по отношению к палитре RGB? Если он сам не хочет потрудиться, то какой еще может быть диалог? Короткий вопрос - конкретный ответ.

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

17 минут назад, my504 сказал:

Увы, работа с МК имеет особенностью понимание его работы В ЦЕЛОМ.

Относительно бездумным может быть только ногодрыг. Использование UARTа не относится к  "бездумным" задачам.

В целом придет потом. И то только тогда, когда применение МК станет правилом. Сейчас это всего лишь исключение из общего правила,

да и то в безвыходных ситуациях. Иными словами, я не буду зажигать гирлянду на елке с помощью STM32 в принципе. :rolleyes: 

То бишь да, если мне удастся сделать из STM32 нуль-модем, то тему можно закрывать до практического применения.

Разве что может быть придется еще SAA7706 по i2C помучить. Вангую, что в HAL про протокол SAA7706 даже намека нет.  :D

Ну и в резерве регулирование кромки, но это только в том случае, если не получится аналоговое управление.

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

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

13 минуты назад, ART_ME сказал:

Вангую, что в HAL про протокол SAA7706 даже намека нет

поздравляю, ты только что блеснул

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Да собсна там много чего и нет! О чем он даже не догадывается :D

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

12 минуты назад, optima сказал:

@ART_ME Там много чего есть! о чем вы даже не догадывайтесь.

Я Вам верю. Но я прагматик. И даже надеюсь, что именно STM32 выведет прекрасную идею МК из тупика.  

Но меня он интересует только в качестве универсальной микросхемы - цена и качество это позволяют..

 

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

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Только что, mail_robot сказал:

Ах как же жаль, что до этого она была в тупике...

Я повторно прошу Вас не флудить в моей теме.

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Залез в примеры микровасика, нашел там каталог Soft UART, а в нем... Null-Modem!

Ну и кто тут меня пытался заставить скачивать и изучать нафиг мне ненужный STM32Cube? :acute:

ЗЫ. Я правильно понимаю, что по mikroBasic PRO for ARM мне здесь задавать вопросы некому?

 

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

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Ну вот и созрел вопрос.

В листинге видим строчку:

GPIO_Digital_Output(@GPIOD_BASE, _GPIO_PINMASK_ALL) ' digitalni output
GPIOD_ODR = 0

Я понимаю, что это настройка порта D, но не могу найти где содержится описание этого выражения и его синтаксис.

Подскажите плиз, где искать?

 

 

 

 

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Ясно, васик не в почете.

Попробуем тогда так.

Ниже представлен тот же код, но в Си:

--------------------------------------------------------

char i, error, byte_read;  // Auxiliary variables

void main() {

  error = Soft_UART_Init(&GPIOA_ODR, 10, 9, 115200, 0); // Initialize Soft UART at 56000 bps
  if (error > 0) {
    GPIOD_ODR = error;                            // Signalize Init error
    while(1);                                     // Stop program
  }
  Delay_ms(100);


  for (i = 'z'; i >= 'A'; i--) {                  // Send bytes from 'z' downto 'A'
    Soft_UART_Write(i);
    Delay_ms(100);
  }

  while(1) {                                      // Endless loop
    byte_read = Soft_UART_Read(&error);           // Read byte, then test error flag
    if (error)                                    // If error was detected
      GPIOD_ODR = error;                    //   signal it on PORTD
    else
      Soft_UART_Write(byte_read);                 // If error was not detected, return byte read
    }
}

--------------------------------

В начале объявлены переменные - i, error, byte_read;

А что такое Soft_UART_Init?

Оно объявлено по умолчанию?

Где и как? И каковы правила его формирования?

Что такое  GPIOA_ODR и что означают следующие за ним параметры я знаю. Но где написано как оно попадает в код и в какой форме?

 

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

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

20 минут назад, ART_ME сказал:

А что такое Soft_UART_Init?

Вот, по этой ссылке,  Soft_UART_Init() - подпрограмма, которая подготавливает МК к работе программного UART, т.е. определяет какая нога будет выходом для Tx, какая нога будет входом для Rx, а также проверяет заказанную скорость обмена, типа, не слишком ли большая/маленькая. Если всё нормально, то результат работы подпрограммы error = 0. Если error = 1, то значит запрошенная скорость обмена слишком большая для софт-UART, если error = 2, то слишком маленькая. Вот этот результат error просто выводится автором в порт D, видимо на ногах порта подключены светодиоды, которые сигнализируют об ошибке.

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

Млин, это ж вызов библиотеки!!!

Соответственно для васика: http://www.mikroe.com/mikrobasic/arm/libraries/

И в самом компиляторе по хэлпу оно же...

А вот сам я не догадался.... :(

Спасибо, Yurkin2015!

 

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

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Спрошу опять по Си.

Есть в хелпе вот такая инструкция:

void GPIO_Clk_Enable(unsigned long *port);

а ниже есть пример такого выражения:

GPIO_Clk_Enable(&GPIO_PORTB);

Не могу найти синтаксиса &GPIO_PORTB

Откуда взялся и что означает "&"?

GPIO_PORTB - это произвольная переменная, или она чем-то жестко задается?

Если произвольная, то почему она не описывается в начале кода?

 

 

 

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Ну в общем сам себе отвечу, может кому и пригодится. :rolleyes:

GPIO_Clk_Enable - это то, что я называю макросом, а (&GPIO_PORTB) - это его параметры.

Макросы эти растут в библиотеке, в данном случае в библиотеке от MikroElectronica. Причем макросов этих так много, что их

объем в программе превышает язык, на котором она написана.

В результате споры о языке теряют смысл, т.к. на самом деле все решают макросы, а язык - всего лишь приложение к их библиотеке.

Тем более, что тот же микровасик оказался дитём от микроСи, потому как указателей (а "&" и есть указатель, который в микровасике "@") в васиках

отродясь не бывало. 

В итоге мне удалось запустить пример нуль-модема, с помехами, но работает.

Ну и по нему вроде все стало понятно, как эту связь организовывать.

Чего и хотелось.B)

 

 

 

 

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Тюльгин Ю.М. Радиоконструктор 2016-03 Датчик пересечения ИК-луча Другая сфера применения аналоговых усилителей на основе микросхемы 4069 - инфракрасный датчик или фотоприемник инфракрасного сигнала. На рисунке 7 показана схема успешно эксплуатируемого уже несколько лет датчика, реагирующего на пересечение либо отражение инфракрасного луча. Интересно то, что в схеме нет широко используемых в таких случаях готовых интегральных фотоприемников. Сигнал принимается обычным ИК-фотодиодом, а усиление производится усилительными каскадами, выполненными на основе инверторов микросхемы 4069. Наличие шести инверторов в одном корпусе микросхемы 4069 позволяет весь датчик, как его приемную, так и передающую части выполнить на одной микросхеме 4069. Рис. 7. Схема датчика пересечения ИК-луча на микросхеме 4069. И так, схема показана на рис. 7. Как обычно, ИК-датчик работающий на отражение или пересечение луча состоит из передатчика ИК-луча и его приемника. Передатчик ИК-луча состоит из ИК-светодиода HL1 (здесь светодиод, такой как в пультах ДУ аппаратуры), токового ключа на транзисторах VТ1 и VТ2 и генератора импульсов частотой около 8-10 kHz. Импульсы с выхода мультивибратора на элементах D1.5 и D1.6 поступают через токовый ключ на VT1 и VT2 на ИК-светодиод HL1. Резистор R11 ограничивает ток через светодиод. HL1 излучает ИК вспышки, следующие с частотой 8-10 kHz. Если существует видимость между HL1 и FH1, излученные вспышки воздействуют на фотодиод FH1 ив нем возникают импульсы тока. Благодаря резистору R1 они преобразуются в импульсы напряжения. Переменное напряжение через конденсатор С1 поступает на первый усилитель на элементе D1.1. Его в усилительный режим переводит резистор R2. Далее, через С2 усиленное переменное напряжение поступает на усилитель на D1.2. В цепи ООС D1.2 есть резистор R3, который смещает его вход в сторону напряжения логической единицы. В результате его выход смещен в сторону логического нуля. Поэтому, в отсутствие входного сигнала напряжение на С3 соответствует логическому нулю. Но при наличии входного сигнала за счет работы детектора на VD1 напряжение на С3 увеличивается до логической единицы. Выходные импульсы формирует триггер Шмитта на элементах D1.3 и D1.4. Фотодиод РН302 можно заменить любым ИК-фотодиодом. Налаживание датчика сводится к подбору сопротивления R3, чтобы при отсутствии сигнала на выходе D1.4 был ноль, а при наличии сигнала - единица. Везде вместо микросхемы 4069 можно попробовать микросхему К561ЛН2.
    • А программатора нет чтоб попробовать залить загрузчик?
    • Мда... Ардуино приехала нерабочая. К компу подключаю - звук подключения есть, а компом не определяется. Маркировка микросхемы загрузчика стёрта.... Ну китайцы... Теперь ждём новую Ардуино, а я пока начну делать пульт.
    • ИМХО, только с24, с25, с12 имеет смысл проверить/заменить.
    • Я сам найду, вы мне название напишите пожалуйста.
    • Добрый вечер..)) Нет в моем случае лучше найти готовый для моего Цифровой осциллограф Instrustar ISDS205A 2 канала х 20 МГц.. Что касается измерительной техники я пасс.. стараюсь купить уже готовое..))
×
×
  • Создать...