Программирование МК STM32
↓ Перейти к основному содержимому
Главная › Программирование МК STM32
 
 
 
- Урок 1. Установка Keil μVision
- Урок 2. Бегущие огни
- Урок 3. Библиотека SPL. Подключаем кнопку
- Урок 4. Библиотека HAL. STM32 CUBE MX. Светодиоды и кнопка
- Урок 5. Библиотека HAL. STM32 CUBE MX. Таймеры
- Урок 6. Библиотека HAL. LCD 20×4. 4-битный режим
- Урок 7. HAL. LCD 20×4. 4-битный режим. Выводим информацию
- Урок 8. HAL. Шина I2C. Подключаем микросхему RTC DS3231
- Урок 9. HAL. Шина I2C. Продолжаем работу с DS3231
- Урок 10. HAL. Изучаем PWM (ШИМ). Мигаем светодиодами плавно
- Урок 11. HAL. Статическая индикация
- Урок 12. HAL. Динамическая индикация
- Урок 13. HAL. USART. Передача данных
- Урок 14. HAL. USART. Прием данных
- Урок 15. HAL. USART. DMA
- Урок 16. HAL. ADC. Regular Channel
- Урок 17.
- Урок 18. HAL. ADC. Regular Channel. DMA
- Урок 19. HAL. ADC Injected Channel
- Урок 20. HAL. ADC. Injected Channel. Interrupt
- Урок 21. HAL. ADC. Regular Channel. Trigger
- Урок 22. HAL. I2C. I2C to LCD2004
- Урок 23. HAL. SPI. Сдвиговый регистр 74HC595
- Урок 24. HAL. SPI. LED Статическая индикация
- Урок 25. HAL. SPI. LED Динамическая индикация
- Урок 26. HAL. SPI. Драйвер индикатора MAX7219
- Урок 27. HAL. DAC
- Урок 28. HAL. DAC. Triangle
- Урок 29. HAL. DAC. Triangle. DMA
- Урок 30. HAL. DAC. Sinus. DMA
- Урок 31. HAL. DAC. Noise
- Урок 32. HAL. DAC. Noise. RNG
- Урок 33. HAL. USB. Virtual Com Port
- Урок 34. HAL. USB. HID
- Урок 35. HAL. USB. Custom HID
Урок 36. HAL. USB. Host. Mass Storage Class
- Часть 1
- Часть 2
Урок 37. Подключаем дисплей TFT 240×320 на контроллере ILI 9341 с шиной 8bit
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Часть 5
- Часть 6
- Часть 7
- Часть 8
- Часть 9
- Урок 38. Плата NUCLEO STM32F401RE и оценочные платы
Урок 39. Подключаем акселерометр LSM303DLHC
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Часть 5
- Урок 40. Знакомство с платой NUCLEO STM32F767ZI
Урок 41. Подключаем акселерометр LIS3DSH
- Часть 1
- Часть 2
- Часть 3
- Часть 4
Урок 42. Подключаем акселерометр LSM6DS0
- Часть 1
- Часть 2
Урок 43. Подключаем акселерометр LSM6DS3
- Часть 1
- Часть 2
- Урок 44. SDIO. FATFS
Урок 45. Подключаем гироскоп LSM6DS0
- Часть 1
- Часть 2
Урок 46. I2S AUDIO
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Часть 5
- Часть 6
- Часть 7
Урок 47. Подключаем гироскоп LSM6DS3
- Часть 1
- Часть 2
Урок 48. USB DEVICE AUDIO
- Часть 1
- Часть 2
- Часть 3
Урок 49. HAL. Магнитометр LSM303DLHC
- Часть 1
- Часть 2
- Урок 50. Устанавливаем System Workbench for STM32
Урок 51. Подключаем магнитометр LIS3MDL
- Часть 1
- Часть 2
- Часть 3
Урок 52. Датчик давления LPS25HB
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Урок 53. System Workbench. Создаём новый проект
- Урок 54. System Workbench. FreeRTOS
Урок 55. Подключаем датчик влажности HTS221
- Часть 1
- Часть 2
Урок 56. System Workbench. Подключаем библиотеку BSP
- Часть 1
- Часть 2
Урок 57. Wi-Fi. SPWF01SA11. Команды
- Часть 1
- Часть 2
- Часть 3
Урок 58. System Workbench. LCD. SDIO
- Часть 1
- Часть 2
- Урок 59. Модуль LCD 16×2 с кнопками
Урок 60. F769I-DISCO. WB. LCD. SDIO
- Часть 1
- Часть 2
Урок 61. Модуль LCD 16×2. Работаем с кнопками
- Часть 1
- Часть 2
- Часть 3
Урок 62. FMC SDRAM
- Часть 1
- Часть 2
- Часть 4
Урок 63. Модуль LCD 16×2. МЕНЮ
- Часть 1
- Часть 2
- Часть 3
Урок 64. HAL. LTDC
- Часть 1
- Часть 2
- Часть 3
Урок 65. Операционный усилитель TSZ124IPT
- Часть 1
- Часть 2
- Часть 3
- Часть 4
Урок 66. HAL. LTDC. SDRAM
- Часть 1
- Часть 2
Урок 67. HAL. LTDC. BMP
- Часть 1
- Часть 2
Урок 68. HAL. LAN. ENC28J60
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Часть 5
- Часть 6
- Часть 7
- Часть 8
- Часть 9
- Часть 10
Урок 69. HAL. LTDC. DMA2D
- Часть 1
- Часть 2
- Часть 3
Урок 70. HAL. LTDC. Вывод текста на дисплей
- Часть 1
- Часть 2
Урок 71. LAN. ENC28J60. ARP
- Часть 1
- Часть 2
- Часть 3
- Часть 4
Урок 72. Touch panel FT5336
- Часть 1
- Часть 2
- Часть 3
- Часть 4
Урок 73. HAL. LTDC. EmWin. Подключение библиотеки
- Часть 1
- Часть 2
- Часть 3
- Урок 74. EXTI или внешние прерывания
- Урок 75. LTDC. EmWin. BMP. Multiple Buffering
- Урок 76. HAL. LTDC. EmWin. MultiLayer. Transparency
- Урок 77. LAN. ENC28J60. Внешние прерывания (EXTI)
- Урок 78. HAL. LTDC. EmWin. Window Manager
- Урок 79. HAL. LTDC. EmWin. Подключаем акселерометр LSM6DS0
- Урок 80. LAN. ENC28J60. UDP Server
- Урок 81. LAN. ENC28J60. UDP Client
- Урок 82.
LAN. ENC28J60. Удаленный доступ Урок 83. LAN. ENC28J60. NTP. Узнаём точное время
- Часть 1
- Часть 2
Урок 84. LAN. ENC28J60. TCP Server. Соединение
- Часть 1
- Часть 2
- Урок 85. LAN. ENC28J60. TCP Server. Передача данных
Урок 86. LAN. ENC28J60. HTTP Server. Передаём малую страницу
- Часть 1
- Часть 2
Урок 87. LAN. ENC28J60. HTTP Server. Передаём страницу побольше
- Часть 1
- Часть 2
Урок 88. SD. SPI. FATFS
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Урок 89. LAN. ENC28J60. HTTP Server. Подключаем карту SD
Урок 90. Датчик освещённости VL6180X
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Часть 5
Урок 91. LAN. W5500. HTTP Server
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Часть 5
Урок 92. Датчик температуры DS18B20
- Часть 1
- Часть 2
- Часть 3
Урок 93. LAN. W5500. HTTP Server. Сокеты
- Часть 1
- Часть 2
Урок 94. DS18B20. Несколько датчиков на одной шине
- Часть 1
- Часть 2
- Часть 3
Урок 95. LAN. W5500. FTP Server
- Часть 1
- Часть 2
- Часть 3
- Часть 4
Урок 96. LAN8720. LWIP. TCP Client
- Часть 1
- Часть 2
- Часть 3
- Урок 97. Подключаем bluetooth-модуль HC-05
Урок 98. LAN8720. LWIP. TCP Server
- Часть 1
- Часть 2
Урок 99. HC-05. Master. Соединяем два МК
- Часть 1
- Часть 2
- Часть 1
- Часть 2
- Урок 101. HC-05. Передаём температуру
Урок 102. LAN8720. LWIP. HTTP RAW
- Часть 1
- Часть 2
Урок 103. Модули NRF24L01
- Часть 1
- Часть 2
- Часть 3
- Часть 4
Урок 104. FreeRTOS. Бинарные (двоичные) семафоры
- Часть 1
- Часть 2
Урок 105. NRF24L01. Передаём данные
- Часть 1
- Часть 2
Урок 106. FreeRTOS. Динамическое создание и уничтожение задач
- Часть 1
- Часть 2
Урок 107. Датчик влажности и температуры DHT22
- Часть 1
- Часть 2
- Урок 108. FreeRTOS. Параметры
- Урок 109. NRF24L01. Передаём температуру и влажность с датчика DHT22
- Урок 110. FreeRTOS. Приоритеты задач
Урок 111. FreeRTOS. Очереди
- Часть 1
- Часть 2
- Урок 112. FreeRTOS. Таймеры
Урок 113. NRF24L01. Несколько передатчиков
- Часть 1
- Часть 2
- Часть 3
- Урок 114. FreeRTOS. Продвинутая задержка DelayUntil
Урок 115. NRF24L01. Несколько приемников
- Часть 1
- Часть 2
Урок 116. FreeRTOS. Прерывания. Очереди в прерываниях
- Часть 1
- Часть 2
- Урок 117. NRF24L01. Обмен информацией
- Урок 118. LAN8720. LWIP. RAW. UDP Client
Урок 119. WS2812B. Лента на умных светодиодах RGB
- Часть 1
- Часть 2
- Часть 3
- Урок 120. LAN8742A. LWIP. NETCONN. UDP Server
Урок 121. Датчик температуры, давления и влажности BME280
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Урок 122. LAN87XX. LWIP. NETCONN. UDP. Соединяем два контролера
Урок 123. LAN87XX. LWIP. NETCONN. UDP. Соединяем три контролера
- Часть 1
- Часть 2
- Урок 124. LAN8742A. LWIP. NETCONN. TCP Server
- Урок 125. LAN8742A. LWIP. NETCONN. TCP Client
- Урок 126. LAN8742A. LWIP. NETCONN. TCP. Соединяем два контролера
- Урок 127. LAN8742A. LWIP. NETCONN. HTTP Server
Урок 128. LAN8742A. LWIP. NETCONN. HTTP. AJAX
- Часть 1
- Часть 2
- Часть 3
Урок 129. LAN8742A. LWIP. NETCONN. HTTP. WebSocket
- Часть 1
- Часть 2
- Часть 3
- Часть 4
Урок 130. LAN8742A. LWIP. NETCONN. NTP. Узнаём точное время
- Часть 1
- Часть 2
Урок 131. LAN8742A. LWIP. SOCKET. UDP Server
- Часть 1
- Часть 2
- Урок 132. LAN8742A. LWIP. SOCKET. UDP. Соединяем два контроллера
- Урок 133. LAN8742A. LWIP. SOCKET. TCP Server
- Урок 134. LAN8742A. LWIP. SOCKET. TCP Client
- Урок 135. LAN8742A. LWIP. SOCKET. TCP. Соединяем три контролера
- Урок 136. LAN8742A. LWIP. SOCKET. HTTP Server
- Урок 137. LAN8742A. LWIP. SOCKET. HTTP. AJAX
Урок 138. Independent watchdog (IWDG)
- Часть 1
- Часть 2
- Урок 139. LAN8742A. LWIP. SOCKET. HTTP. WebSocket
Урок 140. Window watchdog (WWDG)
- Часть 1
- Часть 2
Урок 141. USB HS Host MSC Standalone
- Часть 1
- Часть 2
Урок 142. WS2812B. Ленты на 150-300 светодиодов
- Часть 1
- Часть 2
- Часть 3
- Часть 4
- Часть 5
Урок 143. USB HS Host MSC FREERTOS
- Часть 1
- Часть 2
Урок 144. Режимы пониженного энергопотребления. SLEEP
- Часть 1
- Часть 2
Урок 145. WS2812B. Новые эффекты и оптимизация кода
- Часть 1
- Часть 2
- Часть 3
- Урок 146. LL. Светодиоды и кнопка
Урок 147. LL. Таймеры
- Часть 1
- Часть 2
- Урок 148. LL. Динамическая индикация
- Урок 149. LL. PWM (ШИМ). Мигаем светодиодами плавно
Урок 150. LL. I2C. Подключаем внешний EEPROM
- Часть 1
- Часть 2
- Часть 3
- Урок 151. LL. I2C. Переходник для LCD 16×2
Урок 152. LL. SPI. Драйвер индикатора MAX7219
- Часть 1
- Часть 2
Урок 153. HAL. SPI. Соединяем два контроллера
- Часть 1
- Часть 2
- Урок 154. LL. SPI. Соединяем два контроллера
- Урок 155. HAL. DMA. MEM2MEM
Урок 156. LL. DMA. MEM2MEM
- Часть 1
- Часть 2
- Урок 157. HAL. SPI. Interrupt
- Урок 158. LL. SPI. Interrupt
- Урок 159. HAL. SPI. DMA
- Урок 160. LL. SPI. DMA
Урок 161. LL. USART. Передача данных
- Часть 1
- Часть 2
- Урок 162. LL. USART. Приём данных
- Урок 163. LL. USART. Interrupt
- Урок 164. LL. USART. DMA
- Урок 165. CMSIS. STM32F1. Бегущие огни
Урок 166. CMSIS. STM32F1. RCC
- Часть 1
- Часть 2
- Урок 167. CMSIS. STM32F1. SysTick. Прерывания
- Урок 168. CMSIS. STM32F1. Таймеры
- Урок 169. CMSIS. STM32F1. GPIO. Input
- Урок 170. CMSIS. STM32F1. Динамическая индикация
- Урок 171. CMSIS. STM32F1. PWM (ШИМ). Мигаем светодиодами плавно
- Урок 172. CMSIS. STM32F1. I2C. Подключаем внешний EEPROM
- Урок 173. CMSIS. STM32F1. I2C. Переходник для LCD 16×2
- Урок 174. CMSIS. STM32F1. SPI. Драйвер индикатора MAX7219
- Урок 175. CMSIS. STM32F1. SPI. Соединяем два контроллера
- Урок 176. CMSIS. STM32F1. DMA. MEM2MEM
- Урок 177. CMSIS. STM32F1. SPI. Interrupt
- Урок 178. CMSIS. STM32F1. SPI. DMA
Урок 179. Дисплей TFT 240×320. SPI
- Часть 1
- Часть 2
- Урок 180. Дисплей TFT 240×320. SPI. DMA
- Урок 181. USART. Передача данных
- Урок 182. USART. Приём данных
- Урок 183. CMSIS. STM32F1. USART. Interrupt
- Урок 184. CMSIS. STM32F1. USART. DMA
Урок 185. STM32F1. LL. ADC. Regular Once
- Часть 1
- Часть 2
- Урок 186. LL. STM32F1. ADC. Regular Once. Interrupt
- Урок 187. LL. STM32F1. ADC. Regular Continuous. Interrupt
- Урок 188. LL. STM32F1. ADC. Regular Once. Запуск по таймеру
- Урок 189. LL. STM32F1. ADC. Regular Once. DMA
- Урок 190. LL. STM32F1. ADC. Regular Continuous. DMA
- Урок 191. LL. STM32F1. ADC. Regular Once. DMA. Запуск по таймеру
- Урок 192. LL. STM32F1. ADC. Injected Once
- Урок 193. LL. STM32F1. ADC. Injected Once. Interrupt
- Урок 194. LL. STM32F1. ADC. Injected Continuous. Interrupt
- Урок 195. LL. STM32F1. ADC. Injected Once. Запуск по таймеру
- Урок 196. LL. STM32F1. ADC. Injected Once Scan
- Урок 197. LL. STM32F1. ADC. Injected Once Scan. Interrupt
- Урок 198. LL. STM32F1. ADC. Injected Continuous Scan. Interrupt
- Урок 199. LL. STM32F1. ADC. Injected Once Scan. Запуск по таймеру
- Урок 200. CMSIS. Bit banding
Урок 201. Assembler. Первый проект. Команды MOV, LDR, STR, B
- Часть 1
- Часть 2
- Урок 202. Assembler. Мигающий светодиод. BX, BL, SUB. Флаги. Условия
Урок 203. Assembler. RCC. Стек. Новые команды
- Часть 1
- Часть 2
- Урок 204. Assembler. SysTick. Прерывания
- Урок 205. Assembler. Таймеры. Табличные переходы
- Урок 206. LL. STM32F4. Светодиоды и кнопка
- Урок 207. LL. STM32F4. Таймеры
- Урок 208. LL. STM32F4. SPI. Дисплей TFT 240×320
- Урок 209. LL. STM32F4. SPI. Дисплей TFT 240×320. DMA
- Урок 210. LL. STM32F4. DMA. MEM2MEM
- Урок 211. LL. STM32F4. I2C. Подключаем внешний EEPROM
- Урок 212. LL. STM32F4. USART
- Урок 213. LL. STM32F4. USART. DMA
- Урок 214. HAL. STM32F4. FLASH память W25Q. Получение информации
- Урок 215. HAL. STM32F4. FLASH память W25Q. Чтение данных
- Урок 216. HAL. STM32F4. FLASH память W25Q. Используем программу для обмена данными
- Урок 217. HAL. STM32F4. FLASH память W25Q. Считываем данные в программу
- Урок 218. HAL. STM32F4. FLASH память W25Q. Стираем информацию
- Урок 219. HAL. STM32F4. FLASH память W25Q. Запись данных. Подключаем LCD
Опубликовано
© Narod Stream
Наверх
Программирование STM32
Программирование STM32ПРОГРАММИРОВАНИЕ
МИКРОКОНТРОЛЛЕРОВ STM32
БАЗОВЫЙ КУРС
2 года подготовки, 100 видеоуроков, общей продолжительностью 37 часов, в которых раскрыты самые важные основы микроконтроллеров stm32.
- Схемотехника подключения микроконтроллеров stm32
- Работа в фирменной среде CubeIDE
- Использование встроенного конфигуратора для генерации кода
- Работа с ядром Cortex
- Использование инструментов отладки программы
Автор Селиванов Максим
Кому подойдет этот курс?
Разработчикам электроники
Если вы начинающий или среднего уровня разработчик, то данный курс вам будет особенно полезен. В настоящее время многие фирмы используют в своих разработках микроконтроллеры STM32. Во многих странах СНГ, использование STM32 в профессиональной сфере стало почти стандартом де факто. Знание этих микроконтроллеров позволит вам претендовать на гораздо более высокий оклад.
Фрилансерам
Современные проекты требуют больших
вычислительных ресурсов и больших объемов памяти. Благодаря очень широкой
линейке STM32 как
нельзя лучше подходят для решения самых сложных современных задач, за которые
заказчики готовы платить больше всего.
Чем лучше вы будете владеть инструментами
для работы с stm32, тем быстрее и качественнее сможете решать
самые сложные задачи. А глубокое понимание основ позволит избежать
трудноуловимых ошибок, которые, как это не редко бывает, появляются уже после сдачи проекта
заказчику.
Студентам
В настоящее время во многих вузах преподают основы архитектуры ARM на примере ядер Cortex-M и практику программирования
stm32.
Основная сложность при изучении stm32 и ядер Cortex-M состоит в том, что очень мало литературы на русском языке, а та литература, которая есть слишком теоритезированна. Изучение ядра Cortex в отрыве от практики имеет очень низкую
эффективность. Если теория из книги никак не подкреплена практикой, то большая
часть материала остается совершенно непонятной.
В данном курсе есть много видео,
которые посвящены изучению работы ядра Cortex. Большая часть теории сопровождается практическими примерами использования. Такой подход позволяет намного глубже понять
основы работы ядер Cortex.
Ардуинщикам
Если вы увлекаетесь
электроникой и Arduino и хотите вывести свое хобби на новый уровень, то вам не
обойтись без использования stm32. Возможностей AVR микроконтроллеров сегодня
хватает только на самые простые проекты.
Да, существуют платы на stm32, которые так
же поддерживаются средой arduino, но этих плат очень мало по сравнению с более чем 1800 различных микроконтроллеров stm32, что значительно сужает окно выбора подходящего
микроконтроллера. А из-за требований совместимости кода, среда arduino сильно
урезает возможности STM32.
Возможно, вы опасаетесь, что
переход будет слишком сложным, но это не так. Среда CubeIDE со встроенным
конфигуратором начальной настройки и библиотека HAL позволяет значительно упростить
порог вхождения в STM32. Программирование в среде CubeIDE становится таким же
простым как и в среде Arduino!
Что вы получите, изучив данный курс?
- Освоите мощный и современный инструмент для решения большинства современных задач
- Пропадет неуверенность перед использованием всех микроконтроллеров stm32
- Значительно повысете квалификацию в области разработки встраиваемых систем
- Упорядочите свои занния по теме программирования STM32
- Значительно ускорите разработку и отладку программ
- Повысите надежность работы программ на stm32
Что особенного в этом курсе?
- Последовательное изучение от простого к сложному. Такой подход позволяет освоить даже самые сложные темы.
- Очень глубокое изучение внутреннего устройства микроконтроллеров stm32 и ядра Cortex в частности
- Закрепление теоретических знаний на практике. Даже самая сложная для понимания теория станет простой после изучения нескольких практических примеров
Что вы найдете в курсе?
- 100 видео по самым разным темам прямо или косвенно связанным с STM32
- Шпаргалки по внутренней организации stm32, схемотехнике, настройке периферии и т.д
- Исходные коды проектов из видео с подробными комментариями
Makefiles | Проект STM32-base
STM32-base использует make-файлы для автоматизации процесса компиляции кода C и C++. Makefiles обрабатываются программой make
. Программы, которые будут выполняться из в
, определяются так называемыми правилами. Эти правила определены в make-файлах.
Программы , выполняющие
запуска, ничем не отличаются от тех, которые можно запустить вручную в окне терминала. Однако из-за большого количества аргументов, которые необходимо передать в GNU GCC, автоматизация этого процесса менее подвержена ошибкам.
Помимо меньшей подверженности ошибкам, make
также может обнаруживать изменения, внесенные в (исходные) файлы. Это позволяет сделать
обновлять только те файлы, которые были изменены. Чтобы узнать, как работает make
, обратитесь к официальному руководству GNU make
. Для получения более общей информации о make
посетите веб-сайт GNU make
.
Общий make-файл
Makefile common.mk
, расположенный в make 9Каталог 0004 в базовом репозитории STM32 содержит все эти так называемые правила. В этой статье не будет объясняться, как построчно работают make-файлы на базе STM32. Однако в нем будут выделены некоторые важные части этих make-файлов и ссылки на соответствующую документацию, если это уместно.
Переменные
Большинство строк в make-файле common.mk
имеют какое-то отношение к переменным. Большинство переменных, используемых в этом make-файле, также устанавливаются в этом make-файле. Некоторые переменные устанавливаются с помощью =
оператор. Этот оператор просто устанавливает переменную в заданное значение.
Переменные, установленные с помощью оператора ?=
, устанавливаются только в том случае, если эта переменная еще не была установлена в этот момент. Это позволяет установить эти переменные в другом make-файле. STM32-base использует этот способ установки переменных, чтобы пользователи могли перезаписывать значения этих переменных в своих проектах makefile. Обратитесь к шпаргалке по параметрам make-файла, чтобы узнать, какие переменные можно установить в make-файле проекта.
Для добавления значений к переменным используется оператор +=
. Этот оператор в основном используется для добавления всех аргументов для GCC к одной переменной.
Условные операторы и другие make-файлы
Условные операторы используются в make-файле common.mk
. Условные операторы могут, например, использоваться для условной установки или добавления значений к переменным или для включения других make-файлов. Например, make-файлы для конкретных серий включаются в зависимости от имени используемого устройства.
Правила
Остальная часть make-файла состоит из правил. Правила сообщают сделать
, какие файлы должны быть обновлены, как файлы должны быть обновлены и в каком порядке это должно происходить. Правила имеют следующий синтаксис:
цели : нормальные-пререквизиты | предварительные условия только для заказа рецепт
Цели сообщают make
, какие файлы следует обновить. Предварительные условия сообщают make
, какие файлы будут запускать обновление цели (целей). Предпосылки также определяют порядок, в котором рецепты будут вызываться. Только предварительные условия заказа не заставляют цель обновляться. Заказ только предпосылки используются для создания 9, чтобы получить имя(я) необходимых условий.
Make-файлы для конкретных серий
Помимо make-файла common.mk
базовый репозиторий STM32 содержит несколько дополнительных make-файлов. Эти make-файлы зависят от серии и находятся в подкаталогах каталога make
. Эти make-файлы отвечают за сопоставление имени устройства со значением, которое может использоваться официальным CMSIS. В дополнение к отображению эти make-файлы устанавливают некоторые дополнительные переменные: SERIES_CPU
, SERIES_FOLDER
и MAPPED_DEVICE
.
SERIES_CPU
Эта переменная содержит название конкретного ядра Cortex-M, присутствующего в выбранной серии микроконтроллеров. Это значение передается непосредственно компилятору.
SERIES_FOLDER
Эта переменная содержит имя папки для серии. Эта переменная используется для включения правильного кода запуска, сценариев компоновщика и, при использовании, файлов CMSIS и HAL.
MAPPED_DEVICE
Эта переменная содержит имя сопоставленного устройства. Это имя используется для включения правильного кода запуска и сценария компоновщика. Он также передается в GCC как макрос с аргументом -D
. Полный обзор сопоставления имен устройств см. на странице сопоставления имен устройств.
программирование
Опубликовано 23 ноября 2022 г.   ·   3 мин чтения   ·   # Комментарии   ·   #сегодня-я-узнал  #программирование 
Pub/Sub от Google Cloud — это полезный сервис, предоставляющий асинхронную и масштабируемую платформу обмена сообщениями, которая отделяет службы, создающие сообщения, от тех, которые получают и обрабатывают эти сообщения. В сочетании с Apache Beam (и/или Dataflow, управляемой версией Google) вы можете быстро разработать мощные пакетные и потоковые конвейеры для параллельной обработки данных. Однако недавно я столкнулся с одной небольшой заминкой — хотя Apache Beam имеет встроенный коннектор ввода-вывода для pubsub, он поддерживал только потоковые конвейеры (на момент разработки).
Подробнее
Опубликовано 17 мая 2022 г.   ·   2 мин чтения   ·   # Комментарии   ·   #сегодня-я-узнал  #programming 
Ресурс Terraform null_resource может быть полезен, когда нет существующих модулей для удовлетворения ваших потребностей (с некоторыми оговорками). Документации Hashicorp для него немного не хватает, но, к счастью, больше информации о поставщиках есть в других их документах здесь. После использования этих ресурсов в нескольких местах развертывания нашей инфраструктуры я разработал небольшую коллекцию советов, которые я собрал за последние несколько месяцев и которыми, как я думал, я поделюсь.
Подробнее
Опубликовано 8 марта 2022 г.   ·   2 мин чтения   ·   # Комментарии   ·   #сегодня-я-узнал  #programming 
Облачные функции — это простой, производительный и потенциально недорогой способ создания бессерверных серверных частей. Недавно я пошел по пути настройки непрерывного развертывания для них и решил поделиться с ним своими знаниями.
Подробнее
Опубликовано 22 февраля 2021 г.   ·   12 минут чтения   ·   # Комментарии   ·   #3d-печать  #дизайн  #электрика  #программирование  #embedded 
Несколько лет назад мне пришла в голову идея отслеживать мою закваску с помощью компьютерного зрения. Было удобно следить за этим таким образом, но это было довольно непрактично делать для каждого кормления, поскольку требовалось настроить камеру, загрузить изображения и выполнить некоторую ручную обрезку изображения перед запуском его через мой скрипт анализа. Анализ также был сделан только постфактум, и мне действительно нужно было что-то, что могло бы сказать мне, когда стартер был готов к использованию (или кормлению), или, если я упустил окно возможностей, как давно он достиг своего пика.
Подробнее
Опубликовано 25 апреля 2019 г.   ·   5 минут чтения   ·   # Комментарии   ·   #программирование  #embedded 
Несколько лет назад я создал руководство по настройке кода Visual Studio для разработки с помощью STM32. Поскольку я также занимался разработкой на Nordic nRF52, я решил поделиться еще одним руководством, чтобы показать, как можно настроить, прошить и отладить проект с помощью Visual Studio Code. Проект шаблона, обсуждаемый в этом посте, можно найти на Github. Инструкции Набор инструментов Nordic является кроссплатформенным, но приведенные ниже инструкции предназначены специально для Linux.
Подробнее
Опубликовано 24 июня 2018 г.   ·   15 минут чтения   ·   # Комментарии   ·   #programming 
Хлеб, квинтэссенция жизни. Люди веками выживали за счет этого основного продукта, состоящего только из муки, воды, соли и дрожжей. Попробуйте употреблять все эти ингредиенты по отдельности, и вас ждет пищеварительный сюрприз. Тем не менее, смешайте их вместе и дайте времени сделать свое дело, и в результате вы получите глубокий вкус, текстуру и питательные вещества, которые ранее были заблокированы. Несмотря на то, что превратить тесто во что-то, что выглядит и ощущается как хлеб, относительно легко, задача состоит в том, чтобы выжать все возможные унции вкуса и текстуры (используя только эти четыре ингредиента), чтобы получить воплощение настоящей буханки хлеба.
Подробнее
Опубликовано 6 апреля 2018 г.   ·   13 минут чтения   ·   # Комментарии   ·   #programming 
В случае, если заголовок не ясен, эта запись в блоге посвящена разработке веб-приложения с использованием языка программирования Python с использованием Jupyter Lab, Flask и платформы Heroku. Если вы искали статью о рецептах питона, вы можете начать с этой статьи о приготовлении вареного карри из бирманского питона. Предыстория Проблема онлайн-рецептов выпечки заключается в том, что в большинстве из них используются объемные единицы измерения. Как известно любому цивилизованному пекарю, 1 чашка муки Патриции вполне может отличаться от 1 чашки муки Патрика.
Подробнее
Опубликовано 9 февраля 2018 г.   ·   8 минут чтения   ·   # Комментарии   ·   #programming 
Будучи инженером по мехатронике (прохожу обучение), иногда мне нравится делать вид, что я тоже умею программировать. В моих последних приключениях с программным обеспечением в MistyWest мне нужно было написать приложение на C#, которое включало проверку связи для поиска устройств, которые физически подключены через Ethernet. Поскольку Google и Stack Overflow — два моих лучших друга, я смог довольно быстро найти (казалось) решение вне сети.
Подробнее
Опубликовано 29 октября 2017 г.   ·   2 мин чтения   ·   # Комментарии   ·   #программирование  #embedded 
Сочетание функциональности, настраиваемости и эстетики Visual Studio Code делает его одним из моих любимых редакторов кода. Таким образом, я был настроен на то, чтобы заставить его работать со встроенной разработкой, так как я начал работать с линейкой микроконтроллеров STM32. Я следовал шагам, изложенным в Mastering STM32 от Carmine Noviello (это отличный ресурс), пока там не сказали использовать Eclipse, потому что жизнь слишком коротка, чтобы использовать программное обеспечение с ненужным раздуванием.
Подробнее
Опубликовано 4 апреля 2017 г.   ·   4 мин чтения   ·   # Комментарии   ·   #работа  #программирование  #дизайн  #electrical 
Обзор проекта Цель: создать автономный портал, который будет следовать за гарнитурой HTC Vive, всегда оставляя кабель позади пользователя. Мотивация: Экстравагантная вечеринка на выставке CES 2017, организованная MistyWest. Функции: Конструкция планарного гентри CoreXY Система, построенная из алюминиевых профилей 8020 и акриловых компонентов, вырезанных лазером Управление шаговым двигателем с помощью Teensy 3.2 HTC Vive Отслеживание позы с помощью C++ Патент заявлен Навыки:
Подробнее
Опубликовано 5 февраля 2017 г.   ·   6 минут чтения   ·   # Комментарии   ·   #электрика  #программирование  #embedded 
Резюме проекта Цель: Создать небольшой модульный контроллер для регулирования температуры водяной бани. Мотивация: Приобщиться к этой кулинарной причуде, не роняя толстые стопки наличных на погружной циркуляционный насос. Функции: Хрустящий 0,96-дюймовый OLED-дисплей Кнопочный поворотный энкодер обеспечивает простое взаимодействие с пользователем Съемный штекер температуры через стандартный 3-контактный аудиоразъем Выход с регулируемой температурой для использования с любым нагревательным элементом (например, рисоваркой, мультиваркой и т. д.)
Подробнее
  Опубликовано 1 октября 2016 г.   ·   2 мин чтения   ·   # Комментарии   ·   #программирование 
Предыстория: Среди бумажных блокнотов, самоклеящихся заметок, OneNote, Evernote и многих других — нет недостатка в способах записи. У каждого из них есть свои сильные и слабые стороны, но ни один из них не удовлетворял моим требованиям в качестве ежедневного рабочего журнала для записи ключевых событий, мыслей и вех в течение моего рабочего дня. Мой бумажный блокнот отлично подходит для свободных мыслей, набросков и расчетов, но я хотел бы иметь отдельный блокнот, чтобы отслеживать эти последовательные события.
Подробнее
Опубликовано 6 августа 2015 г.   ·   6 минут чтения   ·   # Комментарии   ·   #programming 
Формат этой серии статей представляет собой набросок моего мыслительного процесса во время разработки @thehaikuza. Поэзию трудно писать, когда алгоритмы чрезвычайно глупы. Я не хочу, чтобы мой генератор хайку был поваром-вегетарианцем. Нет ничего плохого в том, чтобы всегда делать словесный салат, но в конце концов ему придется научиться делать более причудливые вещи. Поэтическое ризотто было бы неплохо время от времени. Оставить @thehaikuza заниматься полной тарабарщиной — это не то, что я планировал.
Подробнее
Опубликовано 12 июля 2015 г.   ·   7 минут чтения   ·   # Комментарии   ·   #programming 
Формат этой серии статей представляет собой набросок моего мыслительного процесса во время разработки @thehaikuza. Хайку простые Даже дети могут их писать, может и программы тоже? Нет ничего круче алгоритмической поэзии. За исключением, может быть, Карла Сагана. Я слышал, что он был довольно крутым парнем. Однажды в воскресенье вечером, когда я ехал домой, я слушал радио, и мне попалась реклама университета, который представлял на литературный конкурс созданные компьютером стихи.
Подробнее
Опубликовано 10 июля 2015 г.   ·   1 мин чтения   ·   # Комментарии   ·   #programming 
Цель: Разработать алгоритм для создания хайку с использованием текстов песен. Мотивация: потому что компьютерная лингвистика — это круто. Проект: twitter.com/thehaikuza Функции: Извлекает историю трансляций Virgin Radio, чтобы найти недавно прослушанные песни Создает очередь хайку на основе песен в Google Таблицах Создает хайку, используя очередь в качестве ссылки, и публикует ее в Твиттере Проверяет наличие новых твитов каждые 5 минут и создает соответствующее хайку, если требуется Находит все тексты песен из Lyrics Wikia Runs on a Raspberry Pi Challenges:
Подробнее
Опубликовано 19 февраля 2015 г.   ·   1 мин чтения   ·   # Комментарии   ·   #programming 
Предыстория: включая (но не ограничиваясь) сопротивление, гравитацию, плотность воздуха, высоту, вращение пули и вращение Земли.