Всем здрасти. Подскажите, бьюсь уже неделю, победить не могу: Приобрел STM32L152 Discovery. Зажигать светодиоды научился, мигать тоже. Проблема с кнопкой - кнопка не реагирует.
RCC->AHBENR...подали тактирование GPIOB->MODER...6 и 7 пин на выход GPIOA->MODER...1 пин на вход GPIOB->PUPDR...push-pull pull-up GPIOA->PUPDR...push-pull pull-up if (GPIOA->IDR&0x01U) {горит левый LED} else {горит правый LED}
Программа на кнопку не реагирует. Если проинвертировать условие то диоды горят наоборот. Проект собирал в кокосе. Из всех примеров на эту CPU с копкой в интернете нашел только один, но там кнопка задействована через EXTI. Из референс мануала не похоже, что надо через прерывания опрашивать кнопку, все должно работать через I/O input.
Прошу прощения, не правильно расписал инициализации. Пин 1 имелось ввиду первая нога порта. Светодиоды висят на PB6 PB7 а кнопка на PA0. Соответственно все инициализируется правильно и проверяется тоже. В отладчика по шагам все проходит правильно, условие проверяется. Но вот нажатие на кнопку ничего не даёт.
Пришла в голову мысль, что может это только для low power контроллеров?
При разборке кода других семейств, там такого не встречал. Данные считываются с порта сразу.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Досикус, спасибо. Стал копировать код и увидел, что порт А не тактируется. Добавил бит и все заработало. Ошибку искал в другом месте. тк разбираясь с проблемой кнопку цеплял и на порт B так же. #include "stm32l1xx.h" int main(void) {
Добавлено after 8 minutes 16 seconds: Для тех, кто только учится: AHBENR - включаем порт A и B (подаем тактирование) MODER - настраиваем вход/выход. Порт А не указан по той причине, что он по умолчанию настроен на вход. PUPDR - включаем подтяжку. IDR - считываем кнопку (читается весь порт!) BSRRH и BSRRL - 32 битный регистр BSRR для установки/сброса значения в порт. Можно использовать и ODR, но через BSSR делать быстрее, не надо читать значение порта.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Сейчас этот форум просматривают: Валерьян и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения