Jump to content
ART_ME

STM32 для чайника

Recommended Posts

Сделал вот это, все равно моргает. :huh:

    ind_Temp = (int) Temp/100;
    if (ind_Temp - last_ind_Temp == 1) 
      TM1637_display_all(last_ind_Temp);
    else if (ind_Temp - last_ind_Temp == - 1)
      TM1637_display_all(last_ind_Temp);
    else 
      TM1637_display_all(ind_Temp);	               
    last_ind_Temp = ind_Temp;

 


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

 

 

Share this post


Link to post
Share on other sites

@ART_ME не нужно безусловно делать это last_ind_Temp = ind_Temp; ну и при чем тут ==

 

    ind_Temp = (int) Temp / 100;
	
    if(((ind_Temp - last_ind_Temp) > 1) || ((ind_Temp - last_ind_Temp) < - 1))
	{
	 TM1637_display_all(ind_Temp);	
	 last_ind_Temp = ind_Temp;	
	}
	else
	{
	 TM1637_display_all(last_ind_Temp);		
	}

 

Edited by MasterElectric

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

@MasterElectric , не понял... Загнать его под else?

 

 

Edited by ART_ME

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

 

 

Share this post


Link to post
Share on other sites

Высокая надежность SiC! Как они этого добились?

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

Подробнее

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

image.png

Share this post


Link to post
Share on other sites

Вебинар «Практическое использование TrustZone в STM32L5»(10.12.2020)

Приглашаем на вебинар, посвященный экосистеме безопасности и возможностях, которые появились у разработчиков благодаря новой технологии TrustZone в микроконтроллерах STM32L5. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

ну значит не факт что датчик вообще рабочий. Особенно если покупался на али. И в таком случае вообще не факт что это 18В20, а не какой нибудь С1815


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

Share this post


Link to post
Share on other sites

Снижена цена на AC/DC и DC/DC преобразователи Mornsun в Компэл!

Компэл и компания Mornsun снизили цены на преобразователи AC/DC-преобразователи семейств LS и LDE. По привлекательной цене также предлагаются DC/DC-преобразователи изолированных семейств поколений R2 и R3 различного конструктивного исполнения.

Подробнее

 Уважаемые Коллеги!

Буду очень благодарен за толковый совет...

А проблема вот какая. Решил плотно заняться STM32  и, вероятно, сразу же сделал серьёзную ошибку. Подразумевая, что так как все процессоры  STM32 на уровне топологии и команд совместимы сверху вниз,  купил в качестве объекта исследования плату Nucleo STM32H7ZI2 ! А тут ещё и CubeIDE 1.3 подоспел. Итог...

После некоторых мучений установил IDE, но с ним как-то неровно. Шаблон генерится, но попытка двинутся дальше приводит к сообщению о необходимости  update!  Кликаешь по ссылке … Промаргивает быстро какой-то экран... И... тишина...

У меня НИКАКОЙ по сути опыт с этой платформой, но слабеньким своим умишком я понимаю, что НЕПРАВИЛЬНО НАСТРОЕНА СРЕДА РАЗРАБОТКИ. Но вот КАК ЕЁ НАСТРОИТЬ.?.. У меня что-то совсем нет понятия, как двигаться и в каком направлении. Тут недавно наткнулся на некую базу документов от STM. Так там некоторый STM32H7xx Pack в архиве занимает более 1ГБ.  Распаковал и ещё больше запутался, рассматривая содержимое папок!

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

Share this post


Link to post
Share on other sites
Posted (edited)

Это та нуклео что на 2 ядрах? Ну да для изучения с нуля это вы погорячились, если там обычный H743 то проблем быть не должно. Паки качает сама среда в свой репозиторий. У меня 1.3 проблем не возникло и ст-линк 3 обновился нормально. мб русские буквы в путях?

Edited by MasterElectric

Share this post


Link to post
Share on other sites

Здравствуйте!

STM32F407GT

Регистр GPIOx_OSPEEDR для конфигурации скорости тактирования портов.

Прошу пояснить в каком случае какие скорости выбирать, как это отражается в конфигурации МК на аппаратном уровне.

Share this post


Link to post
Share on other sites

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


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

Share this post


Link to post
Share on other sites

Всем привет!
Не кидайтесь табуретками в начинающего...
Осваиваю NUCLEO-G431KB  (stm32G431).
Сразу скажу, что не собираюсь быть крутым программистом, Nucleo приобрел, главным образом, для одной чисто прикладной задачи. 
Для начала в Arduino IDE попробовал, скачав соответствующие библиотеки, - вроде все работает.  Но скорость работы, в частности АЦП, очень низкая - 90мкс/сэмпл.
Пробовал установить Keil, IAR, STM32CubeIDE, но они требуют 64 разрядную виндовс...
Поставил STM32CubeMX  - ругается на 32-разрядную Jawa и не гарантирует нормальной работы, но вроде работает..
Пока делаю так - в STM32CubeMX делаю проект, компилирую, из папки исходников беру main.c и вставляю в Arduino IDE.  Эта IDE ругается на #include "main.h"  и на кусок кода, я так понимаю, обработчик ошибок.  Удаляю эти куски, все работает...
Вот вопрос 1 - что с этим делать?
Дальше.  В частности, сейчас задача - сделать оцифровку входного сигнала с максимсальной частотой.  Хочу настроить АЦП для работы в режиме dual Interleaved mode , но работает почему-то только ADC1.  Что может быть, как проверить?

Новый текстовый документ (2).txt

Share this post


Link to post
Share on other sites

Здравствуйте!

Осваивал метод bit-band применительно к портам. В регистре GPIOx_ODR удалось сбросить бит, но не удаётся его установить в чём подвох?

Share this post


Link to post
Share on other sites

Спасибо, с этим уже разобрался. Кривые руки, точнее, мозг. Обычная невнимательность и неаккуратность. МК STM32VGT6.
Следующий вопрос: внутренняя периферия, к которой относится SysTick, не имеет bit-band адресации?

Share this post


Link to post
Share on other sites
3 часа назад, Скептик сказал:

bit-band

где ты это слово взял?


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

Share this post


Link to post
Share on other sites
Posted (edited)

Bit-banding is a term that ARM uses to describe a feature that is available on the Cortex M3 and M4 CPU cores. Basically, the device takes a region of memory (the Bit-band region) and maps each bit in that region to an entire word in a second memory region (the Bit-band Alias Region).

Вот здесь хорошо расписано.

Edited by LiVit

Share this post


Link to post
Share on other sites

Привет!

Новый вопрос от начинающего ассемблерщика. МК STM32F407VGT6. Не могу включить RTC. Алгоритм такой:

1. Включение тактирования GPIOC:

         В регистре RСC_AHB1ENR  бит GPIOCENR = 1

2. Выбор назначения пинов PC14, PC15 как альтернативной функции:

Регистр GPIOC_MODER = 0xA000 0000
= 0b1010 0000 0000 0000 0000 0000 0000 0000

3. Выбор номера альтернативной функции для пинов PC14, PC15:

         Регистр GPIOC_AFRH = 0xFF00 0000

4. Выбор источника тактирования RTC от LSE:

В регистре RСC_BDCR  биты RTCSEL[1:0] = 01;

5. Включение тактирования LSE:

         В регистре RСC_BDCR  бит LSEON = 1;

6. Включение тактирования RTC:

         В регистре RСC_BDCR  бит RTCEN = 1;

7. Снятие блокировки изменения регистров RTC:

         В регистр RTC_WPR записываю 0x00CA, затем 0x0053;

8. Включение режима инициализации RTC:

         В регистре RTC_ISR бит INIT = 1;

9. Циклически проверяю включение режима инициализации RTC:

         Читаю из регистра RTC_ISR флаг INITF.

Флаг равен 0, режим инициализации не включается.

Подскажите, где ошибка.

Share this post


Link to post
Share on other sites

Забыл пункт

6.2 Циклическая проверка включения LSE:

      Читаю из регистра RCC_BDCR  флаг LSERDY, пока он не установится в 1.

 

Share this post


Link to post
Share on other sites

В файле stm32f4xx_rtc.c в самом начале подробно описана последовательность запуска часов. Сначала надо разрешить доступ к Backup Domain

                   ##### Backup Domain Access #####
 ===================================================================
 [..] After reset, the backup domain (RTC registers, RTC backup data 
      registers and backup SRAM) is protected against possible unwanted write 
      accesses. 
 [..] To enable access to the RTC Domain and RTC registers, proceed as follows:
   (+) Enable the Power Controller (PWR) APB1 interface clock using the
       RCC_APB1PeriphClockCmd() function.
   (+) Enable access to RTC domain using the PWR_BackupAccessCmd() function.
   (+) Select the RTC clock source using the RCC_RTCCLKConfig() function.
   (+) Enable RTC Clock using the RCC_RTCCLKCmd() function.

 

Share this post


Link to post
Share on other sites

Да я на ассемблере пишу, не на СИ. Пункт 7, 8 как раз и есть разрешение доступа к регистрам RTC (документ AN 3371).

Попробовал от LSI, такая же беда.

Share this post


Link to post
Share on other sites
37 minutes ago, Скептик said:

Пункт 7, 8 как раз и есть разрешение доступа к регистрам RTC

Это совсем не то. Сначало надо включить Backup Domain в регистре PWR_CR установить бит DBP.

Share this post


Link to post
Share on other sites

Нашёл в RM0090 описание PWR_CR, бит DBT. Установил вперёд всего . Не помогло. Продолжаю разбираться...

Share this post


Link to post
Share on other sites

Как всегда - невнимательность. Забыл затактировать контроллер питания - бит RCC_APB1ENR_PWREN.
snn_krs, огромное спасибо за подсказку !

 

Share this post


Link to post
Share on other sites

Новая проблема - не могу организовать прерывание от RTC по будильнику. Делаю так:

1. Определяю адрес прерывания от RTC в таблице векторов:

         По адресу 228 записываю адрес обработчика прерываний + 1;

2. Разрешаю прерывания от RTC (41-я линия):

         Регистр NVIC_ISER1 = 0x0200;

3. Устанавливаю время тревоги по будильнику A каждый день в 00:00:00 :

Регистр RTC_ALRMAR = 0x8000 0000;

4. Включаю будильник A:

         Бит RTC_CR_ALRAE = 1;

5. Разрешение прерываний от будильника A:

         Бит RTC_CR_ALRAIE = 1.

Прерывания не происходит.

Подскажите, что не так?

Share this post


Link to post
Share on other sites
15.06.2020 в 13:50, Скептик сказал:

Да я на ассемблере пишу, не на СИ

@Скептик ради чего такие мучения с ассемблером на 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...

  • Сообщения

    • НЕ задавал. Это ирония была. У меня были 1302-3281 и дарлингтоны. Нет разницы, 35мА или 135. Или она настолько мала, что... Короче, тут нет смысла накручивать. Уши и сейчас симулятор. Нет, это ты передёргиваешь. И аргументов у тебя нет. Мои аргументы (хоть в симе, у тебя и таких нет) я показал и озвучил про результаты прослушивания. И не сойдёт, а достаточно - лучше не будет. Вот ты и опять ушёл в общие вопросы. Нельзя везде гнуть про одно и то же без привязки к схемам. По крайней мере, таким разным по своим свойствам, как ОК и Шиклаи. Я тебе про Фому, ты мне - про Ерёму. И перекидываемся постами из пустого в порожнее. Ты так написал про модели... Нет моделей - так и скажи. Не раздражайся попусту. Ну, не понял сразу... И мне тоже уже не интересно стало переливать. Закончим. Вот тебе ОМ. АЧХ с разными токами покоя и КНИ с соответствующими. 2 пары, нагрузка 8 Ом 0.1 Ом в эмиттерах. Вот тут (в обычном повторителе) я согласен с наподдать ТП. Но по результатам КНИ, не АЧХ. Про это и был разговор. А в Шиклаи (в конкретно МХ50 и похожих) нет смысла.   
    • Итак всё получилось.  Купил новый микроконтроллер, владелец перепаял его, потом я его прошил. Всё заработало.  Прошивал с помощью программатора usbasp-clone, софт - avrdude (консольный интерфейс),  ос - Ubuntu 16.04.2 xenial. Вначале подключил старый мк к usbAsp,  в avrdude указал мк и программатор, в ответе получил значения fuse (это 3 байта - hfuse, lfuse и efuse). После перепайки эти значения внёс в новый мк, потом ввёл команду на прошивку flash и eeprom.
    • Чтоб никогоэне смущать схематическим видом двигателя, убрал его из схемы. Вот дался вам этот симулятор!!!:):):) Мне удобно. Никому не навязываю. Не обратил внимание на чёрные провода. Но в любом случае, нам нужны эти:
    • Не в первый раз вижу эту схему. Видимо, не очень в теме человек просто занимался реверс- инжинирингом неизвестной схемы.  
    • Да фуфло всё это или мадама вообще не представляет чего пишет, т. к. вышеупомянутое сочетание "джуниор"'а с перечнем требований не коррелирует ни разу.  Видимо предполагалось, что Вьюношу можно будет платить только малую толику. И даже решила для веса "блеснуть" своей осведомлённостью в некоторых проф. аббревиатурах.  Особенно порадовало - видимо думая, что все "джуниор"ы от электроники самозабвенно, беспрестанно и естественно совсем профессионально, пачками разрабатывают и реализуют. ' P. S. Пишу на Паскале, Фортране и Бейсике. Я хороший. На работу берёте?
    • В версиях  V9 и V9,1  на схемах  Uпит  приходит на вход УНЧ  2 нога, а надо вроде на 1 ногу FM_M8_5110_RTC_DS18B20 (2).pdf

  • Bluetooth стерео аудио модуль на основе чипа BK8000L

×
×
  • Create New...