ART_ME

STM32 для чайника

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

my504    266

 

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

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

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

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

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

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

Правильно?

 

 

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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
ART_ME    0
1 минуту назад, my504 сказал:

 

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

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

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

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

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

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

 

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


Ссылка на сообщение
Поделиться на других сайтах
my504    266
9 минут назад, mail_robot сказал:

 

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

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

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

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

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

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

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

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

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

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

 

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

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


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

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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
ART_ME    0
4 минуты назад, my504 сказал:

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

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

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

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

 

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


Ссылка на сообщение
Поделиться на других сайтах
optima    215
16 минут назад, ART_ME сказал:

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
my504    266
5 минут назад, mail_robot сказал:

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
ART_ME    0
9 минут назад, mail_robot сказал:

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

 

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

 

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

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

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

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

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
my504    266
7 минут назад, ART_ME сказал:

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

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

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

 

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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 407
8 минут назад, my504 сказал:

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
ART_ME    0
17 минут назад, my504 сказал:

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

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

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

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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 407
13 минуты назад, ART_ME сказал:

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

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

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


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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
ART_ME    0
12 минуты назад, optima сказал:

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

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

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

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
ART_ME    0
Только что, mail_robot сказал:

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

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

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


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

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

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

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

 

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

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


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

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

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

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

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

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

 

 

 

 

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


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

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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    297
20 минут назад, ART_ME сказал:

А что такое Soft_UART_Init?

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

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


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

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

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

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

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

Спасибо, Yurkin2015!

 

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

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


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

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

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

void GPIO_Clk_Enable(unsigned long *port);

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

GPIO_Clk_Enable(&GPIO_PORTB);

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

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

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

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

 

 

 

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


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

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

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

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

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

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

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

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

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

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

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

 

 

 

 

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


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

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

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

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

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

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

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

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

Загрузка...

  • Сообщения

    • Там ломаться не чему. Вы точно определились что индикатор. Если нет внутри ваккума, то можно и спеца поискать чтобы он там был (стеклодув). В лабораториях по пробиркам они там есть.
    • можно попробовать только отслеживать состояние буфере по счетчику и отправлять байт только если счетчик нулевой и регистр данных пуст. Тогда гарантированно отправится только один байт. Но могут быть перерывы в передаче, а SPI шина жесткая. Поэтому и буферизированная И вообще она не очень подходит для обмена данными между контроллерами, да еще и с неопределенным протоколом. Там все должно быть четко и по правилам. Если так не получается, то используются другие шины.
    • Для того чтоб я меньше  сидел за пояльником и не тратил время в пустую. Купили мне родители  муз-центр LG DM5360K  вот как здесь https://www.dns-shop.ru/product/557a29f35aa43330/domasnaa-audiosistema-lg-dm5360k/ Приподнял я сам муз-центр и он оказался легкий . Ну мне конечно интересно стало что внутри. Вскрыл крышку и смотрю ИИП однотактник с стабилизированным однополярным 27вольт . Под ИИПом экран металлический ,и под экраном УНЧ класса-д построен  на каких то чипах, радиатор снимать не стал. В общем там два мостовых класса-д питаются стабилизированным однополярным 27вольт. Есть Bluetooth и USB для флешки ,  удобно В тех-характеристиках не указано какой там класс унч. Я думаю полную мощность 2х90ватт смело отдает, очень мощно даже пьяному. Акустика 4ом Кстати мне уже не первый муз-центр поподаеться LG основаны на классах-д с ИИП однотактниками. Это я к тому , то что не где не чего не известно из чего реализованы эти центры  
    • Так я и не понял, как лучше поставить для стабилизации режима работы светодиодов. Что поставить лучше? L7812CV L7812 KA7812 MC7812 Напряжение регулятор 12 В 1.5A,  или MP1584EN 3A Регулируемый понижающий. Светодиод будет для салона прилагается, поясните "темному"
    • тут такое дело, что если бы подготовился лучше перед покупкой, то разница в цене вообще ничего не играет. про усиление дорожки встречал инфу. после выходных займусь. так это готовое решение или надо реализовывать самому, имея атмегу+обвязку?
    • Я уже скинул 2 ссылки. Там полно математики и физики. На форум могу скинуть, но лучше создать новую тему. Что я там перевернул? Сразу пишите конкретно: что именно. Тогда будет понятно. Кеша не тупой. Он подкованный технарь, плюс изобретатель. В соционике -  Дон Кихот. Это определённый (довольно не глупый )  тип людей, которые генерируют идеи. Так, Эйнштейн тоже относился к Дон Кихотам. Я в соционике - Де Карт,  или Робеспьер. То есть, "учёный", а не изобретатель. Но к изобретателям отношусь благосклонно, потому как понимаю их роль в обществе.
    • С 10 000 мкф сильно не разбирался, измерение вниз падает, но это и понятно, заранее ждал. Нормально, там 1 Ом резистора разряда на этом конденсаторе, как 10 Ом на 1000 мкф, примерно одинаково, что как бы намекает.