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
HDC2010 – Low Power Humidity and Temperature Digital Sensor | Simple Example
HDC2010 is an integrated humidity and temperature sensor that provides high accuracy measurements with very low power consumption, in an ultra-compact WLCSP (Wafer Level Chip Scale Package). Below you will find a simple example to get temperature and humidity of this sensor by connecting it via I2C to an STM32 microcontroller.
Setting up DirectFB GTK# to a RaspberryPi w/t touchscreen
RaspberryPi is a well established tiny-pc which is worldwide used for prototyping as well as mini DYI projects. In this tutorial we will explain step-by-step how to setup the raspberryPI with a touchscreen and install some useful libraries for writing simple and nice GUI applications. PS: For sure there are several other libraries that can be used to write graphical applications such as QT etc...
Simple data buffering/streaming algorithm – helper functionality
In this tutorial, a simple but useful data buffering/streaming algorithm is presented. It is not optimal but easy to understand and modify according to your needs… This library assumes that we need to use a big amount of data in a memory limited system. The library handles the all the data transferring procedure in a way that the user is able to easily get the amount of data without...
How to write data to the internal FLASH memory of an STM32
There is a common practice of today’s embedded systems to perform firmware upgrade using custom procedures in order to support different communication protocols during the data transfer such as (KWP2000 etc). For that reason the stock STM bootloader(DFU) is not useful and the development should proceed by creating a custom bootloader that supports the requested functionalities as well as...
STM32 DiscoF7 Simple CAN Frame Transmitter + GUI
This example contains a simple STM32CubeMX + Atollic project based on the STM32F7-Disco board which is able to transmit a CANbus Frame. On top of that the board has a really basic GUI with touchscreen capabilities to activate/deactivate the transmission and of course give a feedback of the procedure. You can freely use alter copy this project but keep in mind that it is a sample and not commented...
STM32 video player over network
This example presents a simple video streaming(PC) and video player(STM32F746 board). The video streaming solution is designed to be flexible with a simple “threading” architecture that allows customization. Due to the image processing limitations (missing JPEG decoder) of the STM32F746) which acts as a client, the server (linux PC) is responsible to decode the selected media files and transmit...
I2C Bitbanging for Embeded Systems
Interacting with I2C devices is usually done with a microcontroller and an I2C library, but sometimes either the microcontroller is not supporting I2C or you have some other restrictions which do not allow you to use the provided I2C library. For that reason you can always Bitbang the I2C protocol a.k.a emulate the behavior of this protocol by manually toggling the pins. The following example is...
Using ST’s I2C EEPROM 24C16 with Freescale SKEAZ128LH4
The I²C bus is the most popular of the three current serial EEPROM protocols because of its simplicity, high signal density, and unique write protect (WP) pin characteristics. This illustration shows the typical pin-out of an I²C device with pins 1 through 3 as address pins A0, A1, and A2. Pin 4 is designated as ground, Vcc, while pin 5 is the data line, SDA. The clock signal SCL is at pin 6, pin...