ST MCU Forum
https://bbs.21ic.com/iclist-49-1.html

*Reading Instructions: The following is a brief summary display, not ranked in any particular order. For detailed evaluation processes, source code, and materials, please click the original link to view.

Review 1:
1. Setting Up the Development Environment
https://bbs.21ic.com/icview-3452454-1-1.html
To develop for a microcontroller, the first step is to set up the development environment. ST has continuously improved over the years, from the initial standard library to the current HAL library, which has gradually reduced development difficulty. Next, I will use one of the most commonly used development methods for this evaluation task.
2. Onboard Peripherals – Serial Port
https://bbs.21ic.com/icview-3452456-1-1.html
During the testing of the new development board, we prioritized testing the serial port functionality of the onboard peripherals. Given the importance of serial debugging in the entire testing process, which can continuously provide key information output regarding the testing status, we used the printf function as a means of monitoring the status during the testing process. This is a core consideration for debugging the serial port functionality.
3. Onboard Peripherals – GPIO and Timer
https://bbs.21ic.com/icview-3452458-1-1.html
We conducted tests on GPIO and timers here, combining these two peripheral functions mainly for better demonstration. The timer is an internal module; if it is just the timing function of the timer, it does not actually require any other physical ports. On the other hand, it can easily integrate with other peripherals. For example, the onboard demo of the development board is an LED toggle demonstration, which is implemented using a delay method. Here, we can achieve non-blocking LED blinking using the timer.
4. Onboard Peripherals – PWM
https://bbs.21ic.com/icview-3452528-1-1.html
This test will use an external oscilloscope to observe the PWM output. PWM is one of the more commonly used functions, whether for driving stepper motors or for common breathing lights, which are actually implemented through PWM. Some driver devices also require benchmarks provided through it. In fact, PWM is an advanced function of the timer. We all know that timers achieve functionality through prescaling and counting, while our PWM achieves a state flip when a certain percentage of counting is reached, which can also be understood as inserting a state flip within the timer’s cycle. Like other advanced functions, it relies on the basic timing counting function of the timer.
5. Onboard Peripherals – IIC
https://bbs.21ic.com/icview-3452530-1-1.html
This time, we used a small OLED display module from Seeed, with a resolution of 128×64 pixels and a screen size of 0.96 inches, which is a monochrome display type. This module uses the SSD1315 as the driver chip, although the SSD1306 is also a common choice. The light-emitting mechanism of the OLED screen is completely different from that of LCDs; it requires an initialization process to display information correctly after power-up, a feature similar to IPS color LCD screens.
6. Onboard Peripherals – SPI and CAN Loopback Testing
https://bbs.21ic.com/icview-3452532-1-1.html
This SPI test was initially intended to drive an LCD, but later I thought that the SPI interface of the LCD could only test whether sending is feasible, while receiving was not tested. I saw that some users used loopback testing, which is indeed quite good. For serial interfaces, this is generally applicable, so I included both SPI and CAN for loopback testing here.
Review 2:
1. Introduction, Environment Setup, Project Testing
https://bbs.21ic.com/icview-3454662-1-1.html
This section introduces the basic parameters, schematic diagram, main control MCU, and other materials of the Nucleo-STM32C092 development board, including the processes of environment setup and project testing.
2. Serial Communication
https://bbs.21ic.com/icview-3454672-1-1.html
This section describes the process of implementing serial communication with the Nucleo-STM32C092 development board.
3. PWM Breathing Light
https://bbs.21ic.com/icview-3454682-1-1.html
This section describes the process of implementing a breathing light using hardware PWM on the Nucleo-STM32C092 development board.
4. AHT10 Temperature and Humidity Serial Printing
https://bbs.21ic.com/icview-3454688-1-1.html
This section describes the process of communicating with the AHT10 via hardware IIC on the Nucleo-STM32C092 development board, collecting environmental temperature and humidity, and printing it via serial.
5. AHT10 Temperature and Humidity OLED Display
https://bbs.21ic.com/icview-3454690-1-1.html
This section describes the project design of the Nucleo-STM32C092 development board, which communicates with the AHT10 and OLED via hardware IIC, collects environmental temperature and humidity, prints it via serial, and displays it in real-time on the OLED, creating a DIY temperature and humidity meter.
Review 3:
1. Unboxing Review
https://bbs.21ic.com/icview-3452828-1-1.html
2. LED Control Operation
https://bbs.21ic.com/icview-3452860-1-1.html
This section explains the LED control operation of the STM32C092RC.
3. Onboard Serial Debugging printf Output
https://bbs.21ic.com/icview-3454664-1-1.html
When receiving a new development board, the first thing to do is to print out the serial functionality. This post introduces the steps.
4. Decoding DLT645-2007 Multifunction Three-Phase Energy Meter
https://bbs.21ic.com/icview-3454752-1-1.html
This energy meter is essentially a device for measuring energy consumption readings, with a very simple internal principle, which is the transmission and reception of an energy meter protocol. The domestic energy meter protocol is very specific and has always been the DLT645 protocol.
5. Amazing Tool – Flashing the Onboard STlink of STM32C092 to Genuine Jlink
https://bbs.21ic.com/icview-3455192-1-1.html
This post will use an amazing tool to flash the STlink to Jlink, allowing for high-speed downloading of MCU hex and bin files for programming.
6. Connecting STM32C092 to ESP8266 for Weather Forecast
https://bbs.21ic.com/icview-3455406-1-1.html
For some time, I have wanted to use it for advanced applications. I happened to have an ESP8266-01S module, so I connected it to obtain weather forecast data via wireless WiFi and printed it out using a serial assistant!
7. Using ESP8266 to Upload Temperature to the Cloud and Remotely Control LED Lighting
https://bbs.21ic.com/icview-3458064-1-1.html
The charm of connecting the ESP8266 to a remote cloud server. In today’s world, everything is interconnected, and any electronic product is joining the IoT cloud, allowing users to remotely operate smart homes via smartphones and PCs. Achieving the experience of having the world in your hands!
8. Porting and Using the EasyButton Library
https://bbs.21ic.com/icview-3459942-1-1.html
This section explains how to gradually port the EasyButton library to the STM32C092RC development board for button functionality testing. The STM32C092RC development board has a user button that can be used to demonstrate the corresponding functionality.
Review 4:
1. Unboxing and Environment Configuration
https://bbs.21ic.com/icview-3450386-1-1.html
2. LED and Button Input/Output Verification
https://bbs.21ic.com/icview-3450388-1-1.html
LED and button input/output verification essentially implements the GPIO input/output functionality. Here, we use two LEDs as outputs and one user button as input (implemented through a non-interrupt method). We need to consider how the hardware configuration in the schematic is set up, how the initialization code is implemented, and how the software needs to be written. Next, we will achieve the basic target functionality through this process.
3. Serial Communication: Using USB Virtual Serial Port to Interact with PC
https://bbs.21ic.com/icview-3450400-1-1.html
This time, we mainly tested the serial communication function and achieved communication with the serial debugging tool on the PC through the virtual serial port of the debugger. We will implement variable-length data reception processing through idle + DMA.
4. Timer and PWM
https://bbs.21ic.com/icview-3450404-1-1.html
In this test, by implementing a breathing light effect, we can not only intuitively experience the PWM functionality of the development board but also gain a deeper understanding of the application of timers in electronic systems. The hardware used includes the buttons and LEDs from the GPIO section, and we will use the buttons to switch between different breathing effects of the lights.
5. SPI Loopback Testing
https://bbs.21ic.com/icview-3450464-1-1.html
This test focuses on SPI (Serial Peripheral Interface), a high-speed, full-duplex, synchronous communication bus widely used in embedded systems and electronic devices. To comprehensively and effectively evaluate the SPI interface functionality, we adopted the Loopback testing method.
6. FDCAN Loopback Testing
https://bbs.21ic.com/icview-3450544-1-1.html
The C092 model in this test supports FDCAN, which is CAN FD (CAN with Flexible Data Rate), an upgraded version of the traditional CAN protocol, with core upgrades focused on the protocol layer while maintaining the physical layer.
Review 5:
1. Unboxing, Data Preparation, LED Control
https://bbs.21ic.com/icview-3453796-1-1.html
2. Onboard Button Used as External Interrupt to Trigger LED Blinking
https://bbs.21ic.com/icview-3453922-1-1.html
3. Onboard Serial Port 2 Output Test
https://bbs.21ic.com/icview-3453962-1-1.html
4. Idle Interrupt + DMA Receiving Variable-Length Data and Returning to Serial Port 2
https://bbs.21ic.com/icview-3453974-1-1.html
Using DMA and idle interrupts, we implemented the function of receiving variable-length data through the serial port.
5. Optimizing the Data Return Function of DMA + Idle Interrupt
https://bbs.21ic.com/icview-3454178-1-1.html
Using HAL library functions to implement the above functionality.
6. Using Timer 2 to Blink LED
https://bbs.21ic.com/icview-3454670-1-1.html
7. Advanced Timer Output Pulse Frequency
https://bbs.21ic.com/icview-3455732-1-1.html
In previous evaluation posts, it can be seen that the STM32C092 has only one advanced timer. This time, we will conduct a simple test on the advanced timer.
8. Timer 1 Output Variable Pulse Width
https://bbs.21ic.com/icview-3455824-1-1.html
Testing the pulse width.
9. Using Internal ADC Data Collection Function
https://bbs.21ic.com/icview-3455914-1-1.html
Using ADC to implement the collection function of a displacement sensor.
10. Using Hardware IIC to Drive OLED Screen
https://bbs.21ic.com/icview-3456468-1-1.html
11. Communication Test with Serial Industrial Screen
https://bbs.21ic.com/icview-3456838-1-1.html
Previously, I debugged a certain industrial screen with other 32-bit microcontrollers. Today, I will port it to STM32 and test the running effect.
Review 6:
1. STM32C092 Development Board Environment Setup and OLED Driver Display Experiment
https://bbs.21ic.com/icview-3452870-1-1.html
2. OLED and UART Output
https://bbs.21ic.com/icview-3452934-1-1.html
3. Using Timer to Start ADC and Store Data via DMA Experiment
https://bbs.21ic.com/icview-3453132-1-1.html
4. Timer Interrupt Driving LED to Create Breathing Light Effect
https://bbs.21ic.com/icview-3454934-1-1.html
When controlling a DC motor, it is necessary to generate a dynamically adjustable duty cycle PWM wave, so this test uses periodic interrupts to adjust the duty cycle. This section introduces the Nucleo-STM32C092 development board controlling the LED through timer interrupts.
5. Reading MPU6050 Data Evaluation
https://bbs.21ic.com/icview-3455214-1-1.html
When controlling a quadcopter, it is necessary to detect the three-dimensional speed and acceleration in space, so this test collects data from the MPU6050 sensor. This article introduces the Nucleo-STM32C092 development board reading data from the MPU6050 via the IIC protocol.
Review 7:
1. NUCLEO-C092RC Development Board Unboxing + LED Control Sample Code
https://bbs.21ic.com/icview-3450472-1-1.html
2. NUCLEO-C092RC Development Board PWM + Timer + Breathing Control
https://bbs.21ic.com/icview-3450506-1-1.html
3. Simple Button Control for LED On/Off
https://bbs.21ic.com/icview-3450532-1-1.html
4. How to Enter Low Power Mode and Wake Up
https://bbs.21ic.com/icview-3450542-1-1.html
5. DMA Control Based on TIM for Memory-to-Memory Data Transfer
https://bbs.21ic.com/icview-3450566-1-1.html
6. Corrections Related to usart2_printf
https://bbs.21ic.com/icview-3450614-1-1.html
Previously, when running the printf redirection function in the routine, it always output garbled characters? After some effort, it finally outputs characters normally today? The key should still be the configuration of the clock and baud rate.
Review 8:
1. GPIO Operations
https://bbs.21ic.com/icview-3455238-1-1.html
The GPIO configuration of STM32C092RC is slightly more complex than that of the 51 microcontroller, but the official HAL/LL library functions have already encapsulated it, so just modify the pin numbers and parameters according to the examples to use.
2. ADC
https://bbs.21ic.com/icview-3455528-1-1.html
Understanding ADC first involves recognizing its resolution and the length of the data read.
3. UART
https://bbs.21ic.com/icview-3455536-1-1.html
Understanding some knowledge about the C092 serial port, configuration, and characteristics.
》》VisitST MCU Forum
https://bbs.21ic.com/iclist-49-1.html
More open-source projects can be viewed.

Click “Read the Original” to view the summary post