Category: STM32F4

C style and coding rules 0

C code style and coding rules

I’ve been trying to make my own C code style and coding rules approach, to be used in all my libs. From my first coding experience till today, I changed style many times, from first STM32F4 Library to latest projects, such as ESP_AT_Lib, onewire_uart and others.   Code style rules are published and regularly updated on my Github account, under c_code_style repository name. Please use URL below to access website: https://github.com/MaJerle/c_code_style It was originally inspired by LwIP coding style with some modification....

Tutorial: Control WS2812B leds with STM32 0

Tutorial: Control WS2812B leds with STM32

In this tutorial I will explain how to drive WS2812B with STM32 using TIM PWM and DMA peripherals in the most efficient way by using minimum amount of RAM, required to process all leds. There is a good explanation, already available on the web. If you have no experience with WS2812B leds, I strongly recommend you to read the blog post. It is very well written, but it has one major issue. It uses 24 words of RAM for each LED,...

STM32 tutorial: Efficiently receive UART data using DMA 21

STM32 tutorial: Efficiently receive UART data using DMA

U(S)ART peripheral can work very good by using RXNE (Receive Not Empty) for each byte separatelly. In this case, every received byte is manipulated by CPU by jumping to appropriate UART interrupt service routine. To allow CPU to do fully other job when we receive UART data at high speed we can use DMA (Direct Memory Access) to offload CPU. We can think of DMA as co-processor who can only transfer data between different memories, in our case between peripheral data register UART...

Tutorial – Jump to system memory from software on STM32 9

Tutorial – Jump to system memory from software on STM32

One of you are already familiar with STM32 feature of embedded bootloader for software download to flash. This memory is called system memory and is normally accessible with BOOT configuration (either pin hardware or option bytes (later OB) in flash software). Normally, if you want to jump to system memory, you have to setup pin/OB and reset device. If you have OB setup, this is ok, but since you need at least one BOOT pin in hardware, this can lead to hardware...

HAL Library 33- DMA extension for SPI on STM32Fxxx 21

HAL Library 33- DMA extension for SPI on STM32Fxxx

SPI DMA library allows you to send and receive data via SPI in non-blocking mode. It can be use for TX only, RX only or both (transmissing mode). This library is extension for my SPI library. It requires SPI library as basic to make this to work. Library Read more about HAL libraries Features SPI extension for non-blocking TX, RX or both modes Supports all SPI peripherals on STM32F4 and STM32F7 device Supports interrupt processing Allows you to start DMA transmissing and wait till done This is...