Designing a Music Box Based on 51 Microcontroller

Designing a Music Box Based on 51 Microcontroller

Designing a Music Box Based on 51 Microcontroller Today we will design an interesting music box project that combines the LCD1602 display and a buzzer to allow our microcontroller to play music. System Design Block Diagram Note Frequency Table // Note frequency definitions (unit: Hz) unsigned int TONE_TAB[] = { 523, //do-low 587, //re 659, … Read more

Integrating Flexible Safety RTOS in STM32CubeMX

Integrating Flexible Safety RTOS in STM32CubeMX

Users of STM32 processors can generate basic projects using the STM32Cube tool and freely evaluate the functional safety operating system Flexible Safety RTOS binary library. The STM32Cube ecosystem includes software tools and embedded software libraries, providing a complete set of PC software tools to meet all the needs of the complete project development cycle; it … Read more

Reading and Writing Internal Flash with STM32CUBEIDE

Reading and Writing Internal Flash with STM32CUBEIDE

Without clicking the blue text, how can we have a story?Overview This example mainly explains how to read and write the built-in Flash of the chip. Using the internal Flash of the chip can save some data that needs to be retained after power off, without the need to add external storage chips. This example … Read more

Easy Introduction and Practice of 51 Microcontroller

Easy Introduction and Practice of 51 Microcontroller

Introduction This course is a classic video tutorial set for microcontroller learners, aimed at beginners, teaching you microcontroller programming from scratch with hands-on guidance. It systematically introduces the theoretical explanations and practical development of experimental projects, focusing on the most popular 51 microcontroller C programming! The highlight of this tutorial is that it analyzes the … Read more

A Simple Explanation of Bit Banding in STM32

A Simple Explanation of Bit Banding in STM32

Imagine you have 32 beautiful women to manage; handling all 32 at once can be a bit tricky, right? No worries, let’s take it “slowly” one by one. Why do I put “slowly” in quotes? Because dealing with one is actually much faster than handling all 32 at once. Okay, let’s pause this beautiful fantasy … Read more

Technical Sharing | Driving TFT-LCD with MM32F3270 FSMC

Technical Sharing | Driving TFT-LCD with MM32F3270 FSMC

Interactive interfaces are increasingly integrated into various applications, such as medical devices, process control, mobile phones, and other handheld devices. These interfaces are primarily based on graphic HMIs (Human-Machine Interfaces) using color LCDs. The demand for TFT-LCDs has greatly increased worldwide. This article introduces how to use the FSMC (Flexible Static Memory Controller) of the … Read more

Comprehensive Tutorial on Bluetooth Car Module

Comprehensive Tutorial on Bluetooth Car Module

HC-06 is an integrated Bluetooth serial module that can switch between master and slave modes. It has fewer commands than HC-05 and is simple to use. It is an upgraded version of LV_BC_2.0, previously known as Linvor by Wavesen. This module is mainly used in the field of short-range wireless data transmission. It can easily … Read more

Method 2 for Controlling PC Speaker with C Programming

Method 2 for Controlling PC Speaker with C Programming

In the article “Controlling PC Speaker with C Programming”, we learned to manipulate hardware through IO ports. However, for some readers, this can be too vague and easily confusing. This time, we will use the most basic write system call to write input_event data to achieve the same functionality. For more information on input_event, please … Read more

Discussing C Programming – Caution with Pointer Function Returns

Discussing C Programming - Caution with Pointer Function Returns

In C language, the return value of pointer functions must be handled with caution. Here are the key considerations: ‌1. Valid Return Types‌ Pointer functions should return a pointer that matches the declared type (such as <span>int*</span>, <span>char*</span>, etc.), and the memory pointed to must be valid: int* func_returning_int_ptr() { /* … */ } char* … Read more

Creating a Command Line Interface in C

Creating a Command Line Interface in C

Embedded system development often requires command line functionality, such as the uboot command line. The command line can enhance the flexibility of program execution, facilitate debugging, and significantly improve our development efficiency. This article provides a simple example to teach you how to implement a basic command line module that can be easily ported to … Read more