Tagged: direct memory access

STM32 tutorial: Efficiently receive UART data using DMA 2

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...

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...

HAL Library 31- DMA for STM32Fxxx devices 1

HAL Library 31- DMA for STM32Fxxx devices

It’s been a while since last published library. From that time, I got some requests about making DMA library for HAL and later using this library with USART, SPI, ADC and more libraries. So I’ve made a first step in DMA libraries list. Basic “root” library for DMA process has been created for managing things with DMA streams for STM32F4 and STM32F7 devices. What else it supports, you should check below. Library Read more about HAL libraries Features Root library...

Library 63- DMA for STM32F4xx 12

Library 63- DMA for STM32F4xx

Having each stream on separate bits for checking flags has really annoying for me! I had to made a library for DMA which will handle all that stuff any maybe a little more for me because it is really stressfull, when I have to change DMA stream. Then you have to change interrupt handler function name, all flag bit locations and so on. Too much work for easily fail and bug is here! To enable/disable interrupts, get/clear flags, you have to...

Library 56- Extend SPI with DMA for STM32F4xx 12

Library 56- Extend SPI with DMA for STM32F4xx

As said in one post before, here is SPI DMA library for STM32F4 devices. Instead of onl TX functionality (as in USART DMA library) SPI DMA extension library enables DMA for TX and RX modes at the same time, to receive and transmit data over DMA. Library supports up to 6 SPIs (max number in STM32F4 devices). It can work in 3 main modes: Send data to slave device, receive data from slave device Send data to slave device, don’t...

All STM32F4 libraries 123

All STM32F4 libraries

Because there is a lot of libraries I have done, I will make a table with all of my libraries at one place. When new library will be created, it will be posted here. These libraries work on both Discovery boards, if not, it will be specified. Actually, libraries should work on STM32F4xx series of microcontrollers if they have peripherals that are need for library. All STM32F4xx MCUs don’t have everything inside. 🙂 Libraries are tested on my 4 STM32F4...