Найти в Дзене
MinGW + Visual Studio Code. Руководство для старта
Данный текст будет полезен тем, кто давно хотел слезть с иглы тяжеленных IDE, но настройка компилятора под себя - казалось делом неблагодарным и запутанным. VS Code - это лишь редактор кода. Эт не среда разработки - здесь нет встроенного компилятора или дебаггера. Здесь есть только их поддержка. Чем более инструмент универсален - тем сложнее вначале разобраться в его особенностях. Однако, здесь нет ничего невозможного! Если правильно один раз настроить VS Code, то вы получите замечательную среду с помощью которой можно поддерживать различные проекты на совершенно разных языках...
289 читали · 3 года назад
I2C Slave устройство на STM32. Сегодня с регистрами
Вот что действительно было тяжело найти, так это адекватный пример реализации i2c подчиненного устройства на STM32 с использованием прерываний. Нашлись несколько примеров блокирующих реализаций и пара вопросов на st-community. А вот прям более-менее рабочий проект, где есть реализация нескольких регистров ведомого устройства, да еще и с разным уровнем доступа - такого очень не хватало. Буквально, чуть: В общем, я достиг комедии дна. Мне понравилось, как работало на mbed OS, поэтому, я полез в исходники (https://github...
133 читали · 3 года назад
STM32. Применение Option Bytes без перезагрузки устройства
Гипотетическая ситуация следующая - у нас есть устройство до которого очень тяжело дотянуться ручками, но есть доступ к загрузчику. И нужно установить некоторые OB, например, управление ножками бута или установка защиты от чтения. Для того, чтобы OB встали на свое место - необходим перезапуск МК. Причем, простого ребута по вочдогу или через NVIC_SystemReset() будет недостаточно. Нужен именно Power Cycle всей внутренней периферии. Мы предполагаем, что у нас уже заведен watchdog, который "разбудит" МК перезагрузкой или включены часы RTC с ножкой WakeUp. Разницы особой нет. Вся соль применения Option Bytes без физической перезагрузки - именно в переходе в режим ожидания...
3 года назад
Когда нужна сотня UART'ов или примитивный драйвер для SC16IS740/SC16IS750/SC16IS760
Вот и наступил прекрасный момент, когда все доступные порты заняты, а битбэнгать как-то не сподручно. На сцену выходит микросхема-преобразователь UART в-из I2C/SPI Есть аналоги подобных микросхем-преобразователей (MAX3107, MAX14830), которые скорей всего будут лучшим выбором, чем представленная выше. У них нет "магических" регистров доступа и FIFO длиннее. Так вышло, что под рукой была именно эта микросхема. Работа с доступом к определенным регистрам у нее очень специфичная. Вот, например, сноски под описанием регистров из даташита: Обратите внимание на п...
3 года назад
Поиск устройств на шине I2C STM32
Как понять, что устройство с определенным адресом есть на шине i2c? Конечно же по биту подтверждения ACK (Acknowledge). Этот бит выставляет не мастер, а ведомое устройство. И, если ведомое устройство получило свой адрес, то оно выставит бит подтверждения (прижмет линию к земле). На отличной картинке от DI HALT это наглядно продемонстрировано. В HAL-библиотеке есть специальная функция для проверки доступности устройства: HAL_StatusTypeDef HAL_I2C_IsDeviceReady (I2C_HandleTypeDef *hi2c, uint16_t DevAddress,...
143 читали · 3 года назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала