STM32F4 devices (in most cases) have True Random Number Generator (or RNG). This peripheral can provide 32bit random number. I made a small library, that you can enable and use it very quickly. RNG on STM32F4 is based on analog circuitry. It makes analog noise and that noice is connected to linear shift register. Analog circuitry is designed from ring oscillators whose outputs are XORed. For RNG circuitry is also separate LFSR clock and is independent from System clock. This...
STM32F4 Discovery Blog
Finally I got it working properly. Reading SDcard was very awesome for me for first time, so I decided to make a library for STM32F4xx devices and post it to my website. It’s basically just communication interface between STM32F4 and FatFS library by Chan. It supports SPI or SDIO communication. Library also supports USB communication, but for that purpose you need USB stack too. USB is available here. Below I’m showing how to setup everything with STM32F4 to get SD...
Sometimes you need watchdog timer to look at your system if it gets stuck. I made a little library to work with it. Watchdog in STM32F4xx device has it’s own clock which is independent from main system clock. You have to constantly reset it’s counter value or it will elapse and reset MCU. Watchdog Library Features Detect if system was reset by watchdog Supports different timeouts Reset watchdog
It’s been some time when I post last library. Next one is internal RTC library. STM32F4xx devices have Real Time Clock (RTC) inside, with support of internal calibrated 32768 Hz oscillator or external (more accurate) 32768 Hz oscillator. RTC peripheral has also backup register support, which means that when you reset MCU, registers are not reset or if power is off and you have battery connected on Vbat pin, clock is still working. RTC can also wakeup MCU from all...
Today I’ve modified USART library. My library uses receive interrupt. After that, it just save data into cyclic buffer. User actually don’t know when that happen. Today, I was working on some project, where I need to know exact time, when data arrived on USART. For that purpose, I’ve modified USART library. To be able to know exact time when data arrived, you have to add defines in your defines.h file:
//Enable custom receive interrupt handler for each USART
//Enable for USART1 and so on
//Put only this defines, you want to use
Then, you have to manually create a function...
It’s been a while when I first got ILI9341 lcd working on discovery, but without LTDC driver. Yesterday I decided to make a new library. With LTDC, you can actually display movies, because it uses parallel communication and support 2 layers simultaneously what gives you a high refresh rate. I used my old ILI9341 library and just add/modify some things to get LTDC to work. LTDC also supports 2 layers, so this means that while one layer is displayed, other layer...