In this post we will see how the drv_flash module can be loaded and how it is working. This tutorial is a part of the STM32 Devcoons Framework, so I suggest to first check this article. As with all the modules, we have to import it using the method explained here. And afterwards use the module freely in our code. Below is a simple example of the tsk_app using the flash_erase and flash_write...
STM32 Devcoons Framework – Use the lib_crypto module (3)
In this post, we will add the lib_crypto module to our project. As all the module, it should be ‘automatically ‘ recognized by the STM32 Devcoons Framework, thus we will be able to use its functions directly. So, let’s start! Enable the library featuresUse the library devcoons/stm32-lib-crypto (github.com) Add the module by following the tutorial: Enable the library features...
STM32 Devcoons Framework – Add a module (2)
The flow to add a module in the STM32 Devcoons Framework is a straightforward and seamless process which ease up the development. In this post, we will see the basic rules we have to follow and show a quick example. Place the modules in the corresponding folderAdd a moduleInclude the path in the ‘GCC Include Paths’That’s all! Now you can freely use the module in your code! Place...
STM32 Devcoons Framework – Introduction & Project setup (1)
In this article we will explore an easy-to-use development framework for STM32 microcontrollers. The purpose of this framework is to speed up the development of STM32 projects and help the user focus mostly on their application, rather than the configuration. This framework is consisted by a series of plug-n-play modules covering a wide number of peripherals and libraries. Ex: CANBus, UART, SPI...
How to use EEPROM M24256 with STM32 microcontroller
In this post we will see how we can use the M24256 EEPROM to read and write data with an STM32 microcontroller. The complexity of those operations are really minimal as long as the provided HAL libraries generated by STM32CubeIDE basically does most of this job. Our main idea is to safely read and write data to M23256 by considering the delays that this chip may have and ensuring our operations...
Use the NAND Flash Memory ( MT29F2G01ABAGDWB-IT) with STM32
In this post, you will find a simple, yet easy to use middleware to interface the NAND Flash Memory MT29F2G01ABAGDWB-IT with an STM32 microcontroller using QUADSPI communication . The Micron NAND Flash devices are available in different configurations and densities to fit your project’s needs. It uses SPI and it is a good an alternative solution to SPI NOR, offering superior write...
STM32L4 Sleep mode using FreeRTOS
A useful functionality in low-powered applications is to set the microcontroller in sleep mode for a specific time. This will reduce the overall consumption of the system, and depending on the application it can dramatically improve the battery life. However, using FreeRTOS, the activation of this mode is a bit tricky due to the fact that you have to take into account several other parameters. In...
STM32 UART – Receive unknown size data using DMA and FreeRTOS
There are several situations where we need to use a UART/Serial interface to connect our microcontroller with an external device. However, a common issue is that in most of those cases we do not know in advance the size of the messages thus, our final application needs to use either per character interrupt or a more advanced way like DMAs. Each method has it’s own pros/cons. As you can...
HowTo: STM32 Custom Bootloader/Application
It is a common practice in embedded system these days to use a bootloader-application architecture. The following source code snippets will help you to build you own bootloader/application project providing by the minimum code that is required to jump from one to the other. The example also works with FreeRTOS. First we need to understand 2 simple things. Each binary will be placed in different...
STM32L0xx HAL – DMA register callback issue
This is a simple bugfix of the HAL library (unfortunately ST does not allow external commits). If you have any issues regarding the function HAL_DMA_RegisterCallback(...) using the option HAL_DMA_XFER_ALL_CB_ID