---
# System prepended metadata

title: 'Firmware - STM32 - Study #1'
tags: [Firmware, STM32, Study]

---

# Firmware - STM32 - Study #1

###### tags: `Firmware` `STM32` `Study`

---

__VisualGDB__:
* [Using the STM32 UART interface with HAL - Read](https://visualgdb.com/tutorials/arm/stm32/uart/hal/)
* [Using the STM32 UART interface](https://visualgdb.com/tutorials/arm/stm32/uart/)
* [Controlling STM32 Hardware Timers with Interrupts - read](https://visualgdb.com/tutorials/arm/stm32/timers/)
* [Controlling STM32 Hardware Timers using HAL - read](https://visualgdb.com/tutorials/arm/stm32/timers/hal/)
* [Using STM32 timers in PWM mode - read] (https://visualgdb.com/tutorials/arm/stm32/pwm/)
* [Using the I2C Interface on the STM32 Devices](https://visualgdb.com/tutorials/arm/stm32/i2c/)
* [Using the DMA Controller on STM32 Devices](https://visualgdb.com/tutorials/arm/stm32/dma/)
* [A detailed tutorial on STM32 ADC](https://visualgdb.com/tutorials/arm/stm32/adc/)
* [Tutorials > Embedded > STM32 Peripherals >](https://visualgdb.com/w/tutorials/category/tutorials/embedded/stm32_periph/)
* https://visualgdb.com/w/tutorials/tag/stm32/

---
[By ShawnHymel](https://www.digikey.tw/en/maker/profiles/72825bdd887a427eaf8d960b6505adac)

* [STM32 Education](https://www.st.com/content/st_com/en/support/learning/stm32-education.html?ecmp=tt8919_gl_enews_nov2018&cid=stmDM47234&bid=457693233&uid=6ZXY7hZzNw/Ka24Fgr94jLNbNITIr+psbBAk4/1BPVE=)
* [MOOC - STM32CubeMX and STM32Cube HAL basics](https://www.youtube.com/playlist?list=PLnMKNibPkDnGtuIl5v0CvC81Am7SKpj02)
* [Text Books](https://www.st.com/content/st_com/en/support/learning/stm32-education/text-books.html)

---

[成大資工 Wiki - PWM](http://wiki.csie.ncku.edu.tw/embedded/PWM)

---

* [Getting Started with STM32 - Timers and Timer Interrupts](https://www.digikey.tw/en/maker/projects/getting-started-with-stm32-timers-and-timer-interrupts/d08e6493cefa486fb1e79c43c0b08cc6)
* [Getting Started with STM32 - Working with ADC and DMA](https://www.digikey.tw/zh/maker/projects/getting-started-with-stm32-working-with-adc-and-dma/f5009db3a3ed4370acaf545a3370c30c)
* [Getting Started with STM32 - I2C Example](https://www.digikey.tw/zh/maker/projects/getting-started-with-stm32-i2c-example/ba8c2bfef2024654b5dd10012425fa23)
* [Getting Started with STM32 - Introduction to STM32CubeIDE](https://www.digikey.tw/en/maker/projects/getting-started-with-stm32-introduction-to-stm32cubeide/6a6c60a670c447abb90fd0fd78008697)
* [Getting Started with STM32 - Introduction to FreeRTOS](https://www.digikey.tw/zh/maker/projects/getting-started-with-stm32-introduction-to-freertos/ad275395687e4d85935351e16ec575b1)

---

* [STM32 Basic Timer in Interrupt & PWM mode](https://www.emcu-homeautomation.org/stm32-basic-timer-in-interrupt-pwm-mode/)


---

https://simonmartin.ch/resources/stm32/dl/

---

* [【STM32】HAL库 STM32CubeMX教程六----定时器中断](https://blog.csdn.net/as480133937/article/details/99201209)
* [【STM32】HAL库 STM32CubeMX教程四---UART串口通信详解](https://blog.csdn.net/as480133937/article/details/99073783)
* [【STM32】STM32CubeMX教程二--基本使用(新建工程点亮LED灯)](https://blog.csdn.net/as480133937/article/details/98947162)

---

* [STM32CubeMX—GPIO输入输出实验](https://blog.csdn.net/qq_33728095/article/details/97148029)
* [STM32CubeMX—PWM波输出实验](https://blog.csdn.net/qq_33728095/article/details/96159745)
* [STM32CubeMX—外部中断实验](https://blog.csdn.net/qq_33728095/article/details/97152998)

---

# [STM32 HAL Library Tutorial](https://deepbluembedded.com/stm32-hal-library-tutorial-examples/#:~:text=The%20STM32Cube%20Hardware%20Abstraction%20Layer,for%20all%20the%20hardware%20peripherals.)

The STM32Cube __Hardware Abstraction Layer (HAL)__, an STM32 abstraction layer embedded software 
ensuring __maximized portability across the STM32 microcontroller__. 
The HAL is available __for all the hardware peripherals__.

The __low-layer APIs (LL)__ offering a __fast light-weight expert-oriented layer__ 
that is closer to the hardware than the HAL. The LL APIs are __available only for a set of peripherals__.

The HAL and LL are complementary and cover a wide range of applications requirements:

The HAL offers high-level and __feature-oriented APIs__, with a high-portability level. 
They __hide the MCU and peripheral complexity to end-user__.
The LL offers __low-level APIs at registers level__, with better optimization but __less portability__. 
They require deep knowledge of the MCU and peripherals specifications.
The source code of HAL and LL drivers is developed in Strict ANSI-C 
which makes it independent from the development tools. It is fully documented and is MISRA-C 2004 compliant.

---

