# ControllersTech®: Microcontroller Tutorials with Code from Scratch > Explore STM32, ESP32, AVR \& more tutorials\. Learn HAL, LL, registers, FreeRTOS, IoT, GUIs, and memory in embedded systems projects\. Generated by Yoast SEO v27.9, this is an llms.txt file, meant for consumption by LLMs. ## Pages - [TM4C123G \(Tiva C\) Tutorials – Embedded Programming Guides](https://controllerstech.com/tm4c123g-tutorials/) - [STM32 TCP/IP with Mongoose](https://controllerstech.com/mongoose-tcp-ip/) - [STM32 Register Programming Tutorial \| Direct Access, no HAL](https://controllerstech.com/stm32-registers/) - [STM32 LL UART](https://controllerstech.com/stm32-ll-drivers/peripherals/uart/) - [STM32 LL I2C](https://controllerstech.com/stm32-ll-drivers/peripherals/i2c/) ## Posts - [STM32 USB Mass Storage Class: Use SD Card as External Drive](https://controllerstech.com/stm32-usb-mass-storage-class-sd-card/): This tutorial shows how to use the STM32 USB Mass Storage Class with an SDIO\-connected SD card\. We start with a RAM storage demo to verify the class works, then switch to a real SD card that shows up as an external drive on any computer — no extra drivers needed\. - [Arduino PWM and analogWrite\(\) Explained with Examples](https://controllerstech.com/arduino-pwm-analogwrite-tutorial/): This beginner\-friendly guide explains how PWM \(Pulse Width Modulation\) works in Arduino and how to use the analogWrite\(\) function to simulate analog output\. Learn to control LEDs, motors, and other devices smoothly using PWM, with easy code examples and practical tips\. - [Arduino External Interrupts: attachInterrupt\(\), ISR \& Debounce](https://controllerstech.com/arduino-external-interrupts-tutorial/): This tutorial explains how to use external interrupts in Arduino to make your projects respond instantly to button presses or sensor inputs\. Learn supported pins, trigger modes, and coding examples with practical tips and common pitfalls\. - [STM32 as USB Mouse and Keyboard — HID Device Implementation](https://controllerstech.com/stm32-usb-hid-mouse-keyboard/): Configure the STM32 as a USB HID mouse using a joystick and ADC, and as a USB keyboard using a 4×4 membrane keypad\. Full CubeMX setup, report descriptors, and working code included\. - [STM32 USB Host HID: Read Keyboard and Mouse Data with STM32](https://controllerstech.com/stm32-usb-host-hid-keyboard-mouse/): In this tutorial, we configure the STM32 as a USB Host in HID class to read data from a wired keyboard, a wired mouse, and wireless devices — and display everything on the serial monitor\. ## Headers - [Header 2](https://controllerstech.com/?post_type=us_header&p=155566) - [Header 2 \(2\)](https://controllerstech.com/?post_type=us_header&p=159305) - [Header\_used](https://controllerstech.com/?post_type=us_header&p=150225) ## Categories - [STM32 Tutorials](https://controllerstech.com/category/stm32/) - [STM32 HAL](https://controllerstech.com/category/stm32/hal/) - [Arduino Tutorials](https://controllerstech.com/category/arduino/) - [ESP32 Tutorials](https://controllerstech.com/category/esp32/) - [STM32 Modbus](https://controllerstech.com/category/stm32/stm32-modbus/) ## Tags - [STM32](https://controllerstech.com/tag/stm32/) - [arduino](https://controllerstech.com/tag/arduino/) - [uart](https://controllerstech.com/tag/uart/) - [STM32 Peripherals](https://controllerstech.com/tag/stm32-peripherals/) - [i2c](https://controllerstech.com/tag/i2c/) ## Optional - [Sitemap index](https://controllerstech.com/sitemap_index.xml)