返回资讯中心
外部精选
软件工程
#开发者实时流

Hands-On Embedded Software Design – 21 progressive steps on STM32F7

Build 21 Practical Applications Using C, C++, and Python on STM32F7\n

Hacker News 最新dysgn_embedded2026/10/31 · 6 天前9 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

Build 21 Practical Applications Using C, C++, and Python on STM32F7\n

The repository outlines 21 progressive embedded systems projects, starting from basic bare-metal LED blinking and GPIO manipulation to advanced communication protocols like SPI with DMA, I2C, FreeRTOS with TCP/IP, and a custom bootloader ecosystem. All target examples are developed for the ARM Cortex-M7 architecture on the STMicroelectronics Nucleo-F746ZG board.\n This repository serves as the official source code companion to the textbook "Hands-On Embedded Software Design and Programming", specifically tailored for entry-level software engineers and CS/EE students.\n ---\n

*Examples 1–6 are fully open-source. Examples 7–21 include architectural definitions, with their complete step-by-step implementations exclusive to the textbook.\n

01_LED_1: Just blink LED with tight loop counting for delay.

02_LED_2: Blink LED using tight loop scanning Timer’s CNT register.

03_LED_Button: Same as LED_2 + switching LED color on a button press.

04_LED_Button_2: Same as LED_Button, button is using interrupt instead of polling.

05_LED_Button_3: Both blinking and button handled in interrupt, main loop is empty.

06_LED_Button_4: Same as LED_Button_3 + add SysTick counter for button debouncing. \n### 🟡 Part 2: Serial Communications & Peripherals (Book Companion)

07_USART_Hello: Send “Hello, world!” once through UART.

08_USART_Hello_2: Send “Hello, world!” through UART each time LF is received through UART.

09_USART_Hello_3: Same as UART_Hello_2, but use non-blocking UART functions.

10_USART_LED: Control blinking of LEDs through serial port commands.

11_USART_PWM: Connect LEDs to PWM and control frequency and duty cycle by serial commands.

12_USART_ADC: Make ADC scans paced by receiving LF from serial.

13_USART_PWM_ADC: Control PWM period by serial command, and PWM duty cycle (LED brightness) by ADC (dials). \n### 🔵 Part 3: Advanced Protocols & DMA (Book Companion)

14_SPI_LEDStrip: Control LED strip through SPI interface.

15_SPI_LEDStrip_2: Same as SPI_LEDStrip, using DMA for SPI.

16_SPI_Gyro: Periodic reading of accelerometer over SPI.

17_SPI_Gyro_2: Same as SPI_Gyro, but using array read of registers and DMA for SPI.

18_I2C_ADC_LED: Use potentiometers to control LED stick color/brightness over I2C bus. \n### 🔴 Part 4: Full-Stack Systems & RTOS (Book Companion)

19_Water_dispenser: Controller application with shutoff valve, pump and flow meter.

20_Water_dispenser_RTOS: Controller application running on FreeRTOS and using TCP/IP over Ethernet.

21_Water_dispenser_Bootloader: Custom bare-metal bootloader application.

21_Water_dispenser_LoadableApp: Modified application to work with bootloader.

21_Water_dispenser_Host_LoadApp: Python utility to reprogram the board. \n---\n

🛠️ Hardware & Toolchain Target

Development Board: STMicroelectronics Nucleo-F746ZG (ARM Cortex-M7 @ 216 MHz, 1MB Flash, 320KB SRAM)

Languages: C, C++ (Target firmware), Python (Host PC script utilities)

Production-Ready HAL: Built entirely using the industry-standard STMicroelectronics HAL library.\n ---\n

📘 Unlock the Full Text & Explanations

To master professional firmware design patterns, step-by-step HAL API breakdowns, full source code implementations, and comprehensive instructions on setting up your environment from scratch:\n 👉 Get your copy of "Hands-On Embedded Software Design and Programming" here

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →