All Projects → edosedgar → Stm32f0_arm

edosedgar / Stm32f0_arm

Licence: mit
STM32 Cortex-M0 course

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Stm32f0 arm

open-watch
An open-source handmade smartwatch. All of the codes, PCBs and schematics are available. ⌚
Stars: ✭ 35 (-51.39%)
Mutual labels:  arm, stm32
terminal
Terminal inside the microcontroller (cli for mcu)
Stars: ✭ 31 (-56.94%)
Mutual labels:  arm, stm32
stm32f7xx-hal
A Rust embedded-hal HAL for all MCUs in the STM32 F7 family
Stars: ✭ 71 (-1.39%)
Mutual labels:  arm, stm32
JBC SolderingStation
JBC_SolderingStation
Stars: ✭ 63 (-12.5%)
Mutual labels:  arm, stm32
kconfig
Kconfig for ARM based MCUs
Stars: ✭ 15 (-79.17%)
Mutual labels:  arm, stm32
TMcuSys
🍆 STM32平台uCos与emWin练习项目。图片、音乐、视频、游戏、IAP运行器。
Stars: ✭ 25 (-65.28%)
Mutual labels:  arm, stm32
CML
Fast, safe and easy to use Cortex-M HAL Library, written in C++ 17
Stars: ✭ 17 (-76.39%)
Mutual labels:  arm, stm32
stm32f103xx
DEPRECATED
Stars: ✭ 31 (-56.94%)
Mutual labels:  arm, stm32
Stm32l4xx Hal
A Hardware abstraction layer for the stm32l432xx series chips written in rust.
Stars: ✭ 65 (-9.72%)
Mutual labels:  arm, stm32
async-stm32f1xx
Abstractions for asynchronous programming on the STM32F1xx family of microcontrollers.
Stars: ✭ 24 (-66.67%)
Mutual labels:  arm, stm32
drone-stm32-map
STM32 peripheral mappings for Drone, an Embedded Operating System.
Stars: ✭ 16 (-77.78%)
Mutual labels:  arm, stm32
Stm32liquidcrystal
Liquid Crystal Library for STM32
Stars: ✭ 24 (-66.67%)
Mutual labels:  arm, stm32
stm32 template
这是一个stm32f103 和 stm32f407单片机在Unix、Linux等系统下使用的模版,可以使用make编译、下载、调试。
Stars: ✭ 48 (-33.33%)
Mutual labels:  arm, stm32
tinyfont
Text library for TinyGo displays
Stars: ✭ 37 (-48.61%)
Mutual labels:  arm, stm32
PrntrBoardV2
32-bit 3D Printer controller board using STM32F407 and replaceable TMC2660/2209 stepper drivers.
Stars: ✭ 31 (-56.94%)
Mutual labels:  arm, stm32
STM32F10x Servo Library
Servo library with stm developed by the Liek Software Team. We are working on new versions.
Stars: ✭ 14 (-80.56%)
Mutual labels:  arm, stm32
arm-hard-fault-handler
What to do when Hard fault hits? Debugger and error reporter solution for ARM Cortex M3 and M4.
Stars: ✭ 32 (-55.56%)
Mutual labels:  arm, stm32
STM32Primer2 GNSS Tracker
GNSS Tracker For STM32 Primer2
Stars: ✭ 24 (-66.67%)
Mutual labels:  arm, stm32
toolchain68k
build a toolchain for cross developement. Supports motorola m68k-elf, avr and arm-none-eabi
Stars: ✭ 18 (-75%)
Mutual labels:  arm, stm32
Avem
🚁 轻量级无人机飞控-[Drone]-[STM32]-[PID]-[BLDC]
Stars: ✭ 465 (+545.83%)
Mutual labels:  arm, stm32

Introduction to embedded programming on STM32

General info

STM32 is a modern family of MCUs produced by STMicroelectronics that is widely used in research, consumer and industrial electronics. STM32 microcontrollers are quite powerful and cheap, but impose initial barriers to get started quickly.

The purpose of the course is to overcome these barries and steadily get into the topic. This course will help to develop basic understanding of Cortex-M0 core and STM32F0 peripherals.

To get to the content of lectures and supplementary materials for the course, refer to Wiki page.

If you need just a template project, refer to Blank project.

Syllabus

  1. Toolchain for embedded programming. ARM architecture cross-compiler. On-board debugger. Boot modes. Boot-loader. Configuration bytes.

  2. CPU core. Memory map. Registers. Microcontroller system architecture. Memory organization: static RAM (SRAM), peripheral memory, system memory.Code execution: interrupt table, stack, heap.

  3. Reset and clock control (RCC). Clocking signal. Rising edge, falling edge. Clock sources: HSI, HSE, PLL. Clocking map of stm32f0. Memory latency. Reset system.

  4. General-purpose input/output (GPIO). Structure of GPIO. Input floating. Input pull-up. Input push-down. Shmitt trigger. Contact debouncing. Analog input. I/O alternate functions. 7-segment LED. Dynamic indication.

  5. Nested vectored interrupt controller (NVIC). System and peripheral interrupts. Event-handling policies: polling, interrupts. Interrupt handling: frame stacking, frame unstacking, nested interrupts, tail-chaining, late-arriving. Interrupt priority and status. Interrupt vector table.

  6. Extended interrupts and events controller (EXTI). System timer. Internal structure of EXTI module. EXTI configuration. Internal structure of a system timer: counter, reload value, control and status registers. SysTick configuration. Encoder.

  7. General-purpose timers. Counter structure: counter register, pre-scaler register, auto-reload register. Counter timing diagram. Counter modes: upcounting, downcounting, up/down counting. Timer configuration. Input capture.

  8. Encoder support. Pulse-width modulation (PWM). Incremental encoder operation. Encoder interface mode of a timer. Output compare mode of a timer. Pulse-width modulation, duty cycle. Edge-aligned PWM, center-aligned PWM. Piezoelectric buzzer and PWM-based sound generation.

  9. Universal synchronous and asynchronous receiver-transmitter (USART). Communication directions: simplex, half-duplex, full-duplex. USART signaling scheme: start bit, data bits, parity bit, stop bit. USART configuration: baudrate, endianness, oversampling. USART interrupts.

  10. Direct Memory Access (DMA). DMA transactions. Internal structure of DMA module. DMA transfer parameters: peripheral and memory adresses, circular mode. DMA interrupts.

  11. Real-time clock (RTC). Internal structure of RTC module. Time representation, binary-coded decimal (BCD) format. Alarm clock implementation: masking, interrupts.

  12. Inter-Integrated Circuit bus (I2C). I2C signaling: data pin (SDA), clock pin (SCL), baud rates, addressing, timings. I2C module internal structure. Connection of EEPROM and OLED-display over I2C.

  13. Serial Peripheral Interface (SPI). SPI signaling: MISO and MOSI pins, slave select pin, clock polarity. Internal structure of SPI module. SPI communication modes: simplex, half-duplex, full-duplex, multi-slave, multi-master. Recieve and transmit queues (RXFIFO, TXFIFO). SPI interrupts. Shift register.

  14. Analog-to-digital (ADC) and digital-to-analog (DAC) converters. Successive approximation ADC structure. Internal structure of ADC and DAC modules. ADC operation: clock source, calibration, sampling time. Data alignment. ADC operation modes: single conversion, continious conversion, discontinious mode. ADC operation diagrams. DMA usage. Temperature sensor and reference voltage.

  15. Low-power mode. Sleep mode, stop mode, stand-by mode. Clocking domains.

  16. Introduction to Operating Systems. Finite State Machine (FSM). Basic OS. Real-Time Operating System (RTOS). FreeRTOS: tasks, scheduler, priorities. Inter-Process Communication (IPC): mutex, semaphore, notificator. Critical section. RWM-operation. Deadlock. Message queue.

  17. STM32 Microcontroller Ecosystem. ST-Link. Microcontroller evaluation boards: STM32F0-Discovery, minimal STM32F0 board, STM32F1 Blue Pill, STM32F4-Discovery, STM32G0 board. Printed circuit board production software. Libraries overview.

Contacts

Should you have any questions, feel free to contact via e-mail with subject "STM32 course".

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].