Jump to content
ART_ME

STM32 для чайника

Recommended Posts

Уважаемые коллеги.

Поддался соблазну и взял STM32 с программатором.

Очень бы хотелось поиграться, а уже потом заняться всерьез.

Не могли бы Вы подсказать мануал попроще - создать нечто в микровасике, записать это в МК и посмотреть, что из этого получилось.

Так сказать ликбез для матерого электроника, которого ну очень интересует именно этот МК благодаря его мощности.

Просьба шибко не пинать новичка.

ЗЫ. ВАЖНО!  Если это форум тоже для скучающих отставников, то просьба не отвечать - я и сам уйду. 


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

 

 

Share this post


Link to post
Share on other sites

mail_robot, спасибо. Это именно то, что мне нужно.


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

 

 

Share this post


Link to post
Share on other sites

Ну вроде все получилось - связь через STLink есть, примеры компилируются и в STM32 загоняются исправно.

Поэтому назрел следующий принципиальный вопрос.

Если мне нужно, к примеру, организовать связь с компом по протоколу UART, то каков в таком случае уровень программирования STM32?

То есть нужно ли писать драйвер самому, или его где-то брать как макрос, или все эти макросы вообще в каких-то глобальных библиотеках лежат, или это составная часть компилятора?

плата STM32F103C8T6, STLink, mikroBasic PRO for ARM

 


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

 

 

Share this post


Link to post
Share on other sites

Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

Подробнее

ничего особенного писать не нужно. Нужно скачать STM32 CubeMX, среду разработки MDK ARM (Keil) и изучить библиотеку HAL (входит в комплект куба). Используя эти инструменты можно отправить байт в комп и принять из него примерно минут за 5 не спеша. Все инструменты качаются легально с официальных сайтов

Но это только байт. Логику приема и обработки байтов, формирование пакетов и прочее пишется ручками обычным образом. Тут библиотек еще особо не придумано. Хотя в STM это намного проще чем в восьмибитках за счет взаимодействия модулей и обилия инструментов и библиотек. Можно сказать что это даже проще чем писать под ардуино, когда поймешь как, потому что философия камня тут своя собственная и надо ее суметь уложить в голове.

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

Цитата

mikroBasic PRO for ARM

а вот про это лучше сразу забыть

Edited by mail_robot

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

Share this post


Link to post
Share on other sites

Барьерные силовые клеммы от Degson – расширение складского ассортимента Компэл

Обновленная линейка барьерных клеммных блоков Degson, поступивших на склад Компэл, содержит широкий ряд клемм, подходящих для соединения проводников различного сечения (от 22AWG до 10AWG). Барьерные клеммные колодки сочетают в себе удобство, простоту и надежность соединения. Это достигается за счет ответственного производства и использования высококачественных материалов. Винтовые клеммные блоки барьерного типа Degson предназначены в первую очередь для коммутации в сильноточных цепях, например, в распределительных и измерительных системах.

Подробнее

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

ничего особенного писать не нужно. Нужно скачать STM32 CubeMX и изучить библиотеку HAL. Используя эти инструменты можно отправить байт в комп и принять из него примерно минут за 5 не спеша

Но это только байт.

Байт по протоколу UART или байт бинарный без протокола?

То есть включив на компе гипертерминал и послав в него с STM32 с помощью STM32 CubeMX к примеру 41h, что я увижу в окне гиппертерминала -  A или абракадабру?


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

 

 

Share this post


Link to post
Share on other sites

Материалы вебинара «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок»

Опубликованы материалы вебинара, посвященного решениям Analog Devices для гальванической изоляции. На вебинаре рассказали о: технологии гальванической изоляции iCoupler, цифровых изоляторах, технологии isoPower, гальванически изолированных интерфейсах (RS-485, CAN, USB, I2C, LVDS) и многом другом. Материалы вебинара будут интересны разработчикам промышленной автоматики и медицинской техники.

Подробнее

странный вопрос. Что пошлешь то и увидишь


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

Share this post


Link to post
Share on other sites
Только что, mail_robot сказал:

странный вопрос. Что пошлешь то и увидишь

Пошлю 41h

А из STM32 выйдет или 01000001 если без протокола и 001000001000 если по протоколу

Иными словами, STM32 CubeMX добавит стартовый и стоповый биты и бит паритета к посылке или нет?

 

 


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

 

 

Share this post


Link to post
Share on other sites

По какому протоколу? UART это интерфейс. Пошлешь 41h получишь ровно столько же


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

Share this post


Link to post
Share on other sites

Передача данных в UART осуществляется по одному биту в равные промежутки времени. Этот временной промежуток определяется заданной скоростью UART и для конкретного соединения указывается в бодах (что в данном случае соответствует битам в секунду). Существует общепринятый ряд стандартных скоростей: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400; 460800; 921600 бод. Скорость ( S {\displaystyle S} , бод) и длительность бита ( T {\displaystyle T} , секунд) связаны соотношением T = 1 / S {\displaystyle T=1/S} . Скорость в бодах иногда называют сленговым словом битрейт.

Помимо собственно информационного потока, UART автоматически вставляет в поток синхронизирующие метки, так называемые стартовый и стоповый биты. При приёме эти лишние биты удаляются из потока. Обычно стартовый и стоповый биты обрамляют один байт информации (8 бит), однако встречаются реализации UART, которые позволяют передавать по 5, 6, 7, 8 или 9 бит. Обрамленные стартом и стопом биты являются минимальной посылкой. Некоторые реализации UART позволяют вставлять два стоповых бита при передаче для уменьшения вероятности рассинхронизации приёмника и передатчика при плотном трафике. Приёмник игнорирует второй стоповый бит, воспринимая его как короткую паузу на линии.

Многие реализации UART имеют возможность автоматически контролировать целостность данных методом контроля битовой чётности. Когда эта функция включена, последний бит данных в минимальной посылке («бит чётности») контролируется логикой UART и содержит информацию о чётности количества единичных бит в этой минимальной посылке. Различают контроль на четность (англ. Even parity), когда сумма количества единичных бит в посылке является четным числом, и контроль на нечетность (англ. Odd parity), когда эта сумма нечетна. При приеме такой посылки UART может автоматически контролировать бит четности и выставлять соответствующие признаки правильного или ошибочного приема.

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

Дык STM32 CubeMX добавит стартовый и стоповый биты и бит паритета к посылке или нет?

Edited by ART_ME

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

 

 

Share this post


Link to post
Share on other sites

ну почитай да разберись. Судя по обилию букафф в предыдущем посте это ты умеешь )


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

Share this post


Link to post
Share on other sites

ОК, поставлю вопрос по другому.

В ПЛК обычно нужны как минимум две команды для того, что отправить или принять байт в последовательный порт. Первая команда - это инициализация порта, где прописывается данные порта, а вторая - собственно отсылка и прием байта или байтов. Возможна и третья - флаг результата операции.

Как эта функция реализуется в STM32? Сколько команд я должен прописать для того, чтобы отправить байт в последовательный порт?

 

Edited by ART_ME

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

 

 

Share this post


Link to post
Share on other sites

руками - одну


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

Share this post


Link to post
Share on other sites
1 минуту назад, mail_robot сказал:

руками - одну

Если не трудно, нарисуйте пример такой команды.


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

 

 

Share this post


Link to post
Share on other sites

HAL_UART_Transmit(&huart1, (uint8_t*)message, strlen(message), 255);

наздоровье


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

Share this post


Link to post
Share on other sites

Нужно одной строкой кода присвоить значение отсылаемого байта буферу передатчика UART.

 

Share this post


Link to post
Share on other sites

остальные вопросы задавай после ознакомления с документом

HAL F1.pdf


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

Share this post


Link to post
Share on other sites
3 минуты назад, mail_robot сказал:

HAL_UART_Transmit(&huart1, (uint8_t*)message, strlen(message), 255);

наздоровье

Если я правильно понял, эта команда прописана в STM32CubeMX?

 

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

Нужно одной строкой кода присвоить значение отсылаемого байта буферу передатчика UART.

 

 Я смогу это сделать в mikroBasic PRO for ARM или мне для этого нужен STM32CubeMX?

Edited by ART_ME

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

 

 

Share this post


Link to post
Share on other sites

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


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

Share this post


Link to post
Share on other sites
1 минуту назад, mail_robot сказал:

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

Так я как раз и пытаюсь выяснить, что именно мне читать.

К примеру, если я смогу одной строкой кода присвоить значение отсылаемого байта буферу передатчика UART в mikroBasic PRO for ARM и получить на выходе стандартную отсылку UART, то зачем мне читать про STM32CubeMX? Или без STM32CubeMX мне mikroBasic PRO for ARM бесполезен?

 


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

 

 

Share this post


Link to post
Share on other sites

ART_ME, Вы никак не можете понять, что Cube - это просто набор функций, который Вы вставляете в свой код. То есть попросту БИБЛИОТЕКА функций.

Для отсылки байта не нужно никакой библиотеки. Mail_robot привел Вам пример отсылки СТРОКИ байт. И эта функция (а не команда) развернется в АСМ коде контроллера в изрядное число команд.

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

Но ПРЕДВАРИТЕЛЬНО нужно настроить модуль на необходимую конфигурацию обмена (скорость, число бит, паритет и т.п.). Делается это один раз в начале кода и более не требуется.

Share this post


Link to post
Share on other sites

совершенно все верно. Но низкий уровень я намеренно не трогал. Надеюсь понятно по какой причине.

 


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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Правильно?

 

 

Edited by ART_ME

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

 

 

Share this post


Link to post
Share on other sites
8 минут назад, my504 сказал:

Вы никак не можете понять, что Cube - это просто набор функций, который Вы вставляете в свой код

 

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

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

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

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


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

Share this post


Link to post
Share on other sites

@ART_ME что бы не гадать на кофейной гуще, не ужели так трудно заняться чтением? изобилие информации в сети избавляет от многих вопросов! 


Сергей.

Share this post


Link to post
Share on other sites
Только что, optima сказал:

@ART_ME что бы не гадать на кофейной гуще, не ужели так трудно заняться чтением? изобилие информации в сети избавляет от многих вопросов! 

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


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

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Лаба пополнилась контроллером мощных пельтьешек до 600 Ватт TE Tech TC-720 OEM, который совсем подецелу был отреверсен и прокачен до TC-720 Full, на чем я сэкономил 159$   
    • Довыёбывались?... В ЛНР на военные сборы призвали тысячи резервистов: Украина: Бывший СССР ссыль  
    • Отличное подспорье в работе кружка. Аж зеленое земноводное "внутре" завозилось от зависти. Дорогой подарок в обоих смыслах... Хочу спросить - спонсировали меня пластинами солнечных элементов и контактной лентой. А вот что делать с полученным - ума не приложу. Может кто надоумит - идею подкинет? Раздавать поштучно - не вариант ( на занятиях все те пластины что давал в руки пощупать сразу же превращались в кучку осколков. Делать батареи - тоже - и ставить потом некуда и затратно и делать ради самого процесса делания по моему как то бессмысленно.)
    • Если короче - схема N1 "примерно догадывается", какое напряжение на выходе источника, а N2 "точно знает".
    • Ради коллеги-радиолюбителя я может и постоял бы... Народа там не много, да почта у меня рядом. Рублей по пять отдал бы ему, всю эту кучу... Правда  они не пластмассовые, но вряд ли для него это очень критично.  Но сейчас.. после того красного кружка под моим сообщением... и призывов к модераторам о спасении... уже никак не смогу через себя переступить...ни за сколько. Теперь вся надежда на Маркуса... Но ему желательно знать цену.
    • BARS_ - ну вот зачем спешил? Твой готовый кусок кода - очередная причина отложить изучение доков. А между прочим эти два гаврика двигались в нужном направлении, и даже каким-то мистическим образом понимали друг друга. Нужно только узнать, откуда они столь корявые примеры берут, и зачистить там всё напалмом.
    • @J_Ohm Против чего протест? Против того, что гармошки - самое малозначимое для звука? Это так, электролампы хоть бы возьмите. Правда, там интермоды уже мешают в плотных миксах, но уровень-то (гармонических) искажений запредельный .
×
×
  • Create New...