All STM32 HAL libraries
In this section, I will write all libraries based on HAL drivers from ST.
If you see this first time, make sure you read this post first about how structure of my libs looks like!
All my softwares are published under MIT license. This means that you are allow to modify, share and use my source and other stuff in personal or commercial use. If you modify source code, it has to stay under GNU GPL v3 license too. I reserve a right to shut down this website at any time.
Copyright (c) 2016 Tilen Majerle
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
If you want, you can make a donation to my Paypal account and support my work in future. Paypal link is below.
All examples for Keil uVision can be downloaded from my Github repository.
I’ve added doxygen documentation on my site for HAL based libraries. It is available on this link where you can find descriptions for used functions in my libraires.
Libraries listed below are currently tested on F7 and F4 series and works OK. If you find any bug, please report it to me.
I’m not responsible for any damage you will do using my libraries. You at your own risk!
|RCC||For setting up clock control for your board, supporting internal or external clock, support for enabling I and D cache for F7 series.|
|GPIO||For controlling GPIO pins.|
|DELAY||For delay functions using Systick and DWT counter|
|EXTI||For external interrupts in GPIO pins|
|DISCO||For leds and buttons on STM32Fxxx boards|
|ONEWIRE||For onewire based devices like DS18B20|
|DS18B20||For controlling/reading DS18B20 temperature sensor|
|USART||For communication with UART protocol|
|SPI||For SPI communication|
|GENERAL||General library for different stuff|
|CRC||CRC calculation unit|
|SDRAM||Fir SDRAN communication on F429-Disco, F439-Eval and F7-Disco boards|
|LCD||Single library for F7-Disco, F439-Eval and F429-Disco LCD boards using LTDC and DMA2D|
|BUTTON||For controlling multiple buttons|
|FFT||For FFT calculations|
|HD44780||For LCD display|
|I2C||For I2C communication|
|IWDG||For independent watchdog timer|
|RNG||For true random number generator|
|CPU LOAD||For measuring CPU load using sleep mode and DWT counter|
|FATFS||For interfacing SDCARD with SDIO/SDMMC or SPI communication interface|
|USB||USB Host and Device library|
|BOR||For setting brown-out detection levels|
|TOUCH||For controlling touch on F7-Disco and F439-Eval boards|
|RTC||For internal Real-Time-Clock timer|
|NRF24L01+||For 2.4GHz NRF24L01+ transceiver|
|PVD||Power voltage detector for STM32Fxxx|
|IDENTIFICATION||Detect used STM32Fxxx device where program is running|
|DAC||Output analog voltage|
|ADC||Read analog voltage|
|MPU6050||Operate with MPU6050 accelerometer and gyroscope|
|DMA||Operate with MPU6050 accelerometer and gyroscope|
|USART DMA||Operate with MPU6050 accelerometer and gyroscope|
|SPI DMA||Operate with MPU6050 accelerometer and gyroscope|
|DSP FILTERS||For DSP signal processing|
|GPS||For reading GPS module|
|AHRS IMU||For calculating roll, pitch and yaw values from motion sensor|
|STRING||For creating strings|
|ROTARY ENCODER||For controlling up to 16 rotary encoders using external interrupts|
|AM2301||For temperature and humidity sensor (DHT-21)|
|SSD1306||For controlling SSD1306 LCD driver via I2C|
Download is available in a single pack for all libraries. There will be no single downloads.