Do UART Serial Ports Need DMA for Transmission?

Do UART Serial Ports Need DMA for Transmission?

DMA is a commonly used feature in embedded real-time task processing. Using DMA for UART data packet transmission can significantly reduce CPU processing time, preventing excessive waste of CPU resources, especially when transmitting a large number of data packets (such as high-frequency command transmissions). Brief Introduction to DMA DMA: Direct Memory Access. In simple terms, … Read more

How to Swap UART Rx and Tx Pins and Invert Levels

How to Swap UART Rx and Tx Pins and Invert Levels

Follow+Star Public Account, don’t miss wonderful content Source | AI Electronics Today I will share with you some features of UART in STM32, mainly targeting newer series of STM32 (such as: STM32H7, G0, G4, etc.), which allows changes to the Rx and Tx pins, level inversion, high-low order, and introduces timeout, etc. Embedded Column 1 … Read more

Learning I2C Protocol – Hardware I2C Implementation

Learning I2C Protocol - Hardware I2C Implementation

Initial Implementation of Hardware I2C Based on Standard Library 1. Introduction to Basic Library Functions of Hardware I2C void I2C_DeInit(I2C_TypeDef* I2Cx); void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct); void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct); void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState); void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState); void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState); void I2C_AcknowledgeConfig(I2C_TypeDef* I2Cx, FunctionalState NewState); void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data); uint8_t … Read more

Introduction to ARM Bare-Metal Programming and Embedded Systems

Introduction to ARM Bare-Metal Programming and Embedded Systems

Introduction to ARM Bare-Metal Programming and Embedded Systems Getting Started with ARM Bare-Metal Programming: From Zero to Embedded Development Hello everyone, I’m Daodao. Today, let’s talk about ARM bare-metal development. Many beginners feel overwhelmed when they see ARM, thinking it’s particularly difficult. In fact, it’s not; once you grasp the essentials, writing a simple LED … Read more

IIC Communication Interface Protocol – Layered Architecture Design Simulation

IIC Communication Interface Protocol - Layered Architecture Design Simulation

Regarding the idea of layered design, a detailed design process was explained in a previous article titled “Embedded Hardware Communication Interface Protocol-SPI (Part 2) Layered Architecture Design Simulation Interface” when discussing SPI interface design, so I won’t elaborate further here. Now, using the BSP layer design approach of SPI as a reference, we will use … Read more

In-Depth Explanation of ADC in STM32

In-Depth Explanation of ADC in STM32

Introduction to ADC The STM32F103 series has 3 ADCs with a precision of 12 bits, and each ADC can have up to 16 external channels. ADC1 and ADC2 both have 16 external channels, while ADC3 generally has 8 external channels. The A/D conversion of each channel can be executed in single, continuous, scan, or interrupt … Read more

Practical Project: Smart Home System Design Based on STM32

Practical Project: Smart Home System Design Based on STM32

Click the above to follow us! The smart home system is quietly changing our lifestyle. This article will take you deep into how to use the STM32 microcontroller to create a simple smart home system. We will cover the entire process from hardware selection to software programming, allowing you to easily master this popular technology. … Read more

STM32 IoT Smart Home (5) Device Subsystem to Light LED

STM32 IoT Smart Home (5) Device Subsystem to Light LED

1. Design Concept For controlling the LED light, we can imagine the functions of the LED light. The first is the switch, brightness, and color, which are the main three functions. How can we abstract these three functions? Regardless of what the underlying LED device is, we can abstract it using this structure. As shown … Read more

JTAG Interface Hardware Design for STM32

JTAG Interface Hardware Design for STM32

What is the JTAG Interface? Visually, the JTAG interface is the blue 20-pin connector shown in the image above. What is the Purpose of the JTAG Interface? To download programs to the microcontroller. To debug the microcontroller online, such as step debugging, power-off debugging, viewing register values, etc. Does the JTAG interface for STM32 need … Read more

C++ LED Blinking Program Using Keil and STM32

C++ LED Blinking Program Using Keil and STM32

Follow+Star Public Account, Stay Tuned for Exciting Content Author | strongerHuang WeChat Public Account | Embedded Column Generally speaking, programming on microcontrollers is done using either assembly or C language, while development with C++ is rare. So, can we use C++ for microcontroller development? The answer is definitely yes. Below, I will discuss some details … Read more