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

STM32 для чайника


ART_ME

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

Сделал вот это, все равно моргает. :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;

 

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

 

 

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

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

@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);		
	}

 

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

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

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

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

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

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

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

 

 

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

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

 

 

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

  • 4 недели спустя...

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

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

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

image.png

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

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

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

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

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

  • 3 недели спустя...

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

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

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

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

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

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

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

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

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

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

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

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

  • 2 недели спустя...

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

STM32F407GT

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

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

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

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

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

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

Всем привет!
Не кидайтесь табуретками в начинающего...
Осваиваю 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

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

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

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

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

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

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

3 часа назад, Скептик сказал:

bit-band

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

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

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

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

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

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

  • 1 месяц спустя...

Привет!

Новый вопрос от начинающего ассемблерщика. МК 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, режим инициализации не включается.

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

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

В файле 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.

 

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

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

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

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

37 minutes ago, Скептик said:

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

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

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

Новая проблема - не могу организовать прерывание от 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

×
×
  • Создать...