Jump to content
ART_ME

STM32 для чайника

Recommended Posts

 

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

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

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

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

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

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

Правильно?

 

 

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

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

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

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

Edited by my504

Share this post


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

 

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

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

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

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

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

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

 

Share this post


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

 

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

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

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

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

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

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

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

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

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

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

 

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

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

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

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

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

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

Edited by mail_robot

Share this post


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

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

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

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

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

 

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

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

Чтением чего именно?

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

Share this post


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

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

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

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

Edited by my504

Share this post


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

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

 

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

 

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

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

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

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

 

Edited by ART_ME

Share this post


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

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

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

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

 

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

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

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

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

Edited by my504

Share this post


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

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

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

Edited by mail_robot

Share this post


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

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

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

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

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

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

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

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

Edited by ART_ME

Share this post


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

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

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

Share this post


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

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

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

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

 

Edited by ART_ME

Share this post


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

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

Edited by ART_ME

Share this post


Link to post
Share on other sites

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

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

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

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

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

 

 

 

 

Share this post


Link to post
Share on other sites

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

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

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

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

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 и что означают следующие за ним параметры я знаю. Но где написано как оно попадает в код и в какой форме?

 

Edited by ART_ME

Share this post


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

А что такое Soft_UART_Init?

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

Share this post


Link to post
Share on other sites

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

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

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

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

Спасибо, Yurkin2015!

 

Edited by ART_ME

Share this post


Link to post
Share on other sites

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

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

void GPIO_Clk_Enable(unsigned long *port);

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

GPIO_Clk_Enable(&GPIO_PORTB);

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

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

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

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

 

 

 

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

 

 

 

 

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...

  • Сообщения

    • Видимо потому, что на вкладыши он играет лучше многих других.
    • Привет всем, подскажите пожалуйста качественный и малошумящий темброблок для ланзара. Буду очень благодарен вам. 
    • В этих телах звук не отдельно а встроен в SoC цп, им же и управляется "интеллектуально"-  видит импеданс нагрузки  и в зависимости от его значения согласно внутреннего протокола разрешать/запрещать работу умзч. Например выделенный аудиочип Sabrе9218 с усилком делает тоже самое но без участия цп. Этот чип имеет мощный усилитель  классаG и работает на нагрузку до 300ом. А в зенфоне м1 ZB602 усилитель слабее. Но почему то по рейтингам мурзилок входит в топ10 музыкальных смартов.
    • Вот это новости. А MOSFET-то и не знает! -Эй MOSFET, ты не знаешь, например, каким извилистым путём родилась схема? -Каким извилистым путём родилась схема - не знаю, я ведь MOSFET, пути не отслеживаю, тем более извилистые, а вот по прочтению всех сообщений в теме точно знаю, что диоды на нагрев MOSFETа влияют. Вы не знали, что транзисторы усиливают ток? Ваше незнание не помешало Вам вынести оценку. Как так?  Будьте добры, объясните что Вас повеселило?
    • Нетушки! Первое, что следует сделать - это найти причину перегрева. И это будет не режим! Устраняем причину, ставим новый резистор и...радуемся жизни
  • Покупай!

×
×
  • Create New...