Найти в Дзене
Разбираем код на примере физического движка Bullet Engine
#ИскусствоВзлома #BulletEngine #cpp Bullet Engine -- это современный физический движок, работающий в трехмерном пространстве. Он предоставляется с открытым исходным кодом, что позволяет его легко анализировать и изучать. Физический движок предназначен для реалистичной симуляции столкновений объектов. Это набор инструментов, позволяющий использовать псевдореалистичное поведение сложных объектов в игровых, инженерных или научных целях. Для рассмотрения будем использовать пример, находящийся по пути examples/HelloWorld/HelloWorld...
2 года назад
Подключаем USB на STM32. Программная часть
Настроив проект в STM32CubeMx, тип устройства выберем USB Device Communication Device Class, мы можем сгенерировать программные файлы. Устройство будет появляться в диспетчере устройств в виде COM-порта, если будет подключаться к ОС Windows. В целях обучения выберем Makefiles и нажмем сгенерировать проект. Проектные файлы "USB_DEVICE/App/usb_device.c" -- исходный файл, отвечающий за инициализацию устройства USB. В нем по очереди вызываются функции: USBD_Init -- инициализация библиотеки устройства...
277 читали · 2 года назад
Подключаем USB на STM32. Схема подключения
#USB #STM32 USB -- универсальный последовательный интерфейс известный всем и каждому. Он -- синоним совместимости с персональным компьютером, хотя бы на непрофессиональном, обывательском уровне. А значит, пока ваше устройство не будет оснащено этим разъемом, оно не будет восприниматься окружающими как Готовое. Впрочем, у него есть неоспоримые преимущества перед UART: стабильность, стандартизация, самодостаточность. Недостатки: средняя сложность программной имплементации, средний размер, отсутствие надежной фиксации разъема...
1471 читали · 2 года назад
Куда перейти с Arduino? Вариант embox на STM32
#Переходимсардуино Феномен успешности Arduino базируется на простоте: никто раньше не делал дешевую и простую плату, дополненную общедоступным программным обеспечением. Тут все звезды сошлись: развитие интернета, глобализация, популярность проектов с открытым исходным кодом. Не принижая достоинств, Ардуино можно указать на ее недостатки: Ниже я приведу описание аналога Ардуино, который хорош именно структурной строгостью системы. Хочу отметить, что все рассматривается с точки зрения установки на stm32f103 embox Это конфигурируемая RTOS на базе Linux...
205 читали · 2 года назад
Чем отличаются библиотеки HAL vs LL для STM32 на примере I2C
STM32CubeMx предлагает две библиотеки для упрощения работы разработчикам: Чтобы понять разницу между двумя подходами, необходимо взглянуть н пример отправки сообщений по интерфейсу I2C HAL //глобальные переменные I2C_HandleTypeDef I2cHandle; uint8_t aTxBuffer[] = "что-то очень важное" //функция передачи данных HAL_I2C_Master_Transmit(&I2cHandle, (uint16_t)I2C_ADDRESS, (uint8_t*)aTxBuffer, TXBUFFERSIZE, 10000); Короткая функция, которая скрывает от разработчика все подробности. Можно также выбрать версии, использующие прерывания и DMA...
1012 читали · 3 года назад
STM32. DMA. Посылаем на три буквы. И принимаем
Получить или отправить микроконтроллером данные через какой-нибудь интерфейс дело серьезное. Возможности МК и моя фантазия предлагают три варианта: Коротко пробежимся по первым двум. В целом, они достаточно похожи: мы загружаем данные в соответствующий регистр, а далее проверяем регистр, который подтверждает нам, что данные ушли. Только в первом случае бесконечный цикл проверяет регистр, будто вода точит камень. Так вот, как долго ждать пока вода наточит камень? Очень долго, так и МК может зависнуть на этом процессе надолго...
261 читали · 3 года назад
Ki CAD. Бесплатно разводим плату для Bluetooth 5.0 модуля
Рано или поздно, но всегда встает вопрос создания собственной платы. Всякие ситуации бывают: например, в этом случае, не существует просто макетной платы с модулем Bluetooth 5, а вот поиграться с таким очень хочется. Сам модуль смотрите ниже: Пины на нем это просто набор контактных площадок. Все это значит, что на нужна плата, на которую можно припаять этот модуль и у которой будут стандартные штыревые вилки или гнезда. Программа В нашем мире все создается, в большинстве случаев, с помощью компьютера, а значит нужна подходящая программа...
6 лет назад
Переходник с uSD для STM32/Arduino
Если нет под рукой переходника для uSD с интерфейсом SDIO, то его можно изготовить самостоятельно. При этом распиновка самого переходника следующая: У вас должно получится что-то похожее. Не забудьте, что в данном случае отсутствует подтяжка, а значит нужно включать пины в режиме PullUp. Рабочая прошивка для такой конструкции и платы Nucleo лежит здесь...
6 лет назад
Реагируем на нажатие кнопки правильно. STM32CubeMx + HAL
Самый простой способ управления любым прибором - это кнопка! И тут есть простой способ: в цикле опрашивать кнопку. while(true) { // Кнопка нажата? //Что-то тут происходит HAL_Delay(какое-то значение); } И тут возникают проблемы: что будет, если кнопка нажата во время ожидания? Есть элегантное решение: прерывания! Их суть понятна из названия, они прерывают исполнение главного кода, например, бесконечного цикла в функции main(). То есть когда бы ни была нажата кнопка, на нажатие будет реакция. Настроим прерывания из STM32CubeMX Кнопка у нас настраивается в разделе GPIO...
3022 читали · 6 лет назад
SD-карта. Как ее подружить с STM32? В роли свахи: Hal
Информация в современном мире вышла на первый план, переоценить ее значение почти невозможно. А уж ее сохранение - одна из главных задач, которая стоит перед многими компаниями. Что же делать, если ваш крохотный микроконтроллер иногда бывает не подключен к интернету? Как сохранить информацию о том, что же он тогда делал? Логично же, подключить к SD карте и сохранять на нее. В прошлых частях неоднократно упоминалось, что STM32CubeMX может бережно изменять программный код, не затирая ваши правки. Сейчас мы воспользуемся этой "фишкой"...
3445 читали · 6 лет назад
STM32+UART.Hal
В прошлый раз (тык!) Мы с помощью STM32CubeMX настроили интерфейс UART. Сейчас очень кратко опишем, как им пользоваться. Сам интерфейс UART очень прост в использовании. Он спроектирован для работы в режиме устройство-устройство, в нем нет возможностей для подключения нескольких slave...
426 читали · 6 лет назад
STM32 + I2C (stm32cubeide). Краткое сравнение с wire(Arduino)
Вторая часть про настройку Nucleo-f746zg для работы по интерфейсу I2C. В предыдущей части был создан, настроен проект в STM32CubeMX, после чего сгенерирован исходный код для stm32cubeide. Основные файлы хранятся в этом репозитории...
1246 читали · 6 лет назад