We may earn an affiliate commission when you visit our partners.
Course image
Christian Salazar

Curso de STM32 en español.

El curso lo puede desarrollar casi en cualquier tarjeta STM32 (

En primera instancia le ayudará a generar el primer programa "Hola Mundo", compilarlo y aprovechar las herramientas de depuración.

Consta de más de 8 Horas de video para su mejor entendimiento.

En el Curso tiene guías y puntos clave en PDF a tener en cuenta con sus respectivas imagenes y explicaciones que le servirán para complementar su conocimiento con el video práctico el cual le guiará de manera adecuada para entrar en el mundo de los STM32. El curso está dirigido a ser bastante práctico.

Read more

Curso de STM32 en español.

El curso lo puede desarrollar casi en cualquier tarjeta STM32 (

En primera instancia le ayudará a generar el primer programa "Hola Mundo", compilarlo y aprovechar las herramientas de depuración.

Consta de más de 8 Horas de video para su mejor entendimiento.

En el Curso tiene guías y puntos clave en PDF a tener en cuenta con sus respectivas imagenes y explicaciones que le servirán para complementar su conocimiento con el video práctico el cual le guiará de manera adecuada para entrar en el mundo de los STM32. El curso está dirigido a ser bastante práctico.

Los ejemplos RAR expuestos están disponibles para descarga libre.

El uso HAL Drivers hace que sea relativamente más fácil reciclar funciones y código.

Temas fundamentales para aplicaciones Casuales e

Esta temática le servirá para siguientes Cursos de GUI Básicos, GUI avanzados con emWin, FreeRTOS, lwIP, ModBus, HMI con

Enroll now

What's inside

Learning objectives

  • Configuración inicial del proyecto y depuración del mismo
  • Manejo general de entradas y salidas gpios
  • Manejo de interrupciones externas en gpio
  • Manejo de usart en modo sondeo (polling), interrupción y dma, además de funciones con printf
  • Uso de iwdg watchdog independiente
  • Interrupción de timer, calculo de periodo y prescaler
  • Salida de pwm con timer
  • Entrada de pwm con timer
  • Contador rápido de pulsos con timer
  • Generador de pulsos con comparador de salida del timer
  • Leer y generar señal de encoder de cuadratura (canales a, b)
  • Adc en modo sondeo (polling)
  • Adc en modo interrupción
  • Adc en modo dma (recomendado)
  • Salida analógica dac
  • Manejo de i2c en modo sondeo (polling), interrupción y dma.
  • Manejo de spi en modo sondeo (polling), interrupción y dma.
  • Modo de bajo consumo sleep, stop y standby
  • Generador de números aleatorios
  • Manejo del rtc (fecha y hora)
  • Manejo de alarmas del rtc
  • Uso de los registros de respaldo (backup registers)
  • Show more
  • Show less

Syllabus

STM32 Básico

En este video generaremos el primer programa que se cargará a la tarjeta STM32F429 Discovery, en general los laboratorios están orientados para poder implementarlos casi en cualquier microcontrolador de cualquier familia de STM32, configuraremos el Reloj de Procesador al cual va a trabajar, usaremos el HSI RC (High Speed Internal) que es un oscilador de tipo Resistencia-Capacitor interno que trabaja a 16 Mhz, el cual lo configuraremos para subir la frecuencia al reloj principal del procesador, asimismo configuraremos el HSE (High Speed External) que es el oscilador externo que tiene la tarjeta soldada con sus respectivos capacitores, lo haremos en el IDE STM32CubeIDE propio y libre (GRATIS) de ST Microelectronics, insertaremos variables vara visualizar su comportamiento a lo largo del programa depurando con la herramienta STLink embebida de la tarjeta STM32F429 Discovery y el software libre STMStudio que usa el protocolo SWD del STLink para acceder a las direcciones de memoria (variables) del procesador y visualizar su contenido en tabla, curva o barras.


In this video we will generate the first program that will be loaded to the STM32F429 Discovery card, in general the laboratories are oriented to be able to implement them almost in any microcontroller of any STM32 family, we will configure the Processor Clock to which it will work, we will use the HSI RC (High Speed Internal) which is an internal Resistance-Capacitor type oscillator that works at 16 Mhz, which we will configure to raise the frequency to the processor's main clock, we will also configure the HSE (High Speed External) which is the external oscillator that has the card soldered with their respective capacitors, we will do it in ST Microelectronics' own free STM32CubeIDE IDE (FREE), we will insert variables to visualize their behavior throughout the program debugging with the embedded STLink tool of the STM32F429 Discovery card and the software free STMStudio that uses the STLink SWD protocol to access memory addresses (variable es) of the processor and display its content in a table, curve or bars

Read more

En este video generaremos desde cero un programa para probar la funcionalidad de los GPIOS en función digital, para demostrar el funcionamiento de las salidas usaremos el diodo LED de la tarjeta STM32F429 Discovery (Casi todas las tarjetas STM32 poseen un diodo LED conectado a una de sus salidas y un Push Button a otro GPIO), además del Push Button (Botón Azul) de las misma.

In this video we will generate from scratch a program to test the functionality of the GPIOS in digital function, to demonstrate the operation of the outputs we will use the LED diode of the STM32F429 Discovery card (Almost all STM32 cards have an LED diode connected to one of their outputs and a Push Button to another GPIO), in addition to the Push Button (Blue Button) of the same.

En este video programaremos la entrada PA0 de la tarjeta STM32F429 Discovery como entrada de Interrupción, la cual tiene un Botón Azul (User Button) para poder generar en terminos matemáticos un escalón unitario que no es mas que un pulso, debemos tomar en cuenta lo antes aclarado en el video anterior sobre el ruido o rebote de los elementos de acción mecánica, también manipularemos el vector de prioridades NVIC al cual responde CMSIS en donde cambiaremos la prioridad de nuestra interrupción.

In this video we will program the PA0 input of the STM32F429 Discovery card as an Interrupt input, which has a Blue Button (User Button) to be able to generate in mathematical terms a unit step that is not more than a pulse, we must take into account the above clarified in the previous video about the noise or rebound of the mechanical action elements, we will also manipulate the NVIC priority vector to which CMSIS responds where we will change the priority of our interruption.

En este video vamos a aprender a manipular el periférico USART (huart1) para transmitir y recibir datos en modo polling, por interrupción y por DMA desde una terminal serial (Software libre RealTerm) con la ayuda de un conversor de USB a serial TTL (ch340 converter), además configuraremos el USART para poder usar la función printf() de librería stdio.h.

In this video we are going to learn how to manipulate the USART peripheral (huart1) to transmit and receive data in polling mode, by interruption and by DMA from a serial terminal (RealTerm free software) with the help of a USB to serial TTL converter (ch340 converter), we will also configure the USART to be able to use the printf () function from the stdio.h library.

En este video aprenderemos sobre el uso del periférico IWDG (WatchDog Independiente) que es un temporizador de tiempo programable el cual tiene la capacidad de reiniciar nuestro microcontrolador por completo, este es muy útil para poder recuperar el control si por algun motivo el CPU no logra recuperar la correcta ejecucion del codigo de nuestra aplicación (Se pierde en un bucle no deseado), calcularemos el tiempo requerido para que satisfaga nuestras necesidades.

In this video we will learn about the use of the IWDG peripheral (Independent WatchDog) which is a programmable time timer which has the ability to restart our microcontroller completely, this is very useful to be able to regain control if for some reason the CPU fails recover the correct execution of the code of our application (It is lost in an unwanted loop), we will calculate the time required to satisfy our needs.

En este video calcularemos los valores del periodo y prescaler para que un timer nos genere una interrupción, probaremos cuando se habilita la opción de que el timer genera la interrupción periodicamente o solo una vez, usaremos el datasheet del microcontrolador para determinar la frecuencia a las que está oscilando el timer seleccionado.

In this video we will calculate the values of the period and prescaler so that a timer generates an interruption, we will test when the option is enabled that the timer generates the interruption periodically or only once, we will use the microcontroller datasheet to determine the frequency at which the selected timer is oscillating.

En este video generaremos una señal de tipo PWM (Modulación en Ancho de Pulso) con la ayuda de un Timer de hardware, calcularemos la frecuencia a la cual necesitamos nuestro PWM, asimismo recordaremos ciertos criterios del video anterior.

In this video we will generate a PWM (Pulse Width Modulation) signal with the help of a hardware Timer, we will calculate the frequency at which we need our PWM, we will also remember certain criteria from the previous video.

En este video capturaremos una señal PWM generada con otro timer en el mismo microcontrolador para asi con las configuraciones adecuadas poder calcular la frecuencia y el dutty al cual se está generando dicha señal, para ello solo necesitaremos un pequeño puente o conexión entre los GPIOS involucrados.

In this video we will capture a PWM signal generated with another timer in the same microcontroller so that with the appropriate settings we can calculate the frequency and the dutty at which said signal is being generated, for this we will only need a small bridge or connection between the GPIOS involved.

En este video configuraremos un Timer de Hardware para poder capturar pulsos y contabilizarlos de tal manera que el periférico lo haga automáticamente, es decir que ahora vamos a separar la señal de reloj del timer (APB1 o APB2) para poder alimentar sus ciclos de procesamiento mediante ETR (External Trigger), esta característica de los Timers es muy útil para poder conectar elementos de alta frecuencia para poder determinar el número de pulsos como por ejemplo un Caudalímetro o un Encoder de pulsos, etc.

In this video we will configure a Hardware Timer to be able to capture pulses and count them in such a way that the peripheral does it automatically, that is, now we are going to separate the clock signal from the timer (APB1 or APB2) to be able to feed its processing cycles through ETR (External Trigger), this feature of the Timers is very useful to be able to connect high frequency elements to be able to determine the number of pulses such as a Flowmeter or a Pulse Encoder, etc..

En este video generaremos una señal de tren de pulsos usando la característica del Timer de Output Capture, esto lo haremos a una baja frecuencia, el programa empezará generando la señal programada a cierta frecuencia y habilitaremos la entrada del pulsador de usuario para detener la generación de pulsos, el tren de pulsos generado es de período simétrico, es decir mismo tiempo en el alto y bajo nivel TTL.

In this video we will generate a pulse train signal using the Output Capture Timer feature, we will do this at a low frequency, the program will start generating the programmed signal at a certain frequency and we will enable the user button input to stop the generation of pulses, the generated pulse train is period symmetric, that is, the same time at the high and low level ttl.

En este video vamos a simular la señales AB que normalmente genera un encoder de cuadratura, estas señales las podremos insertar a un Timer (El timer debe poder aceptar señal de encoder) de nuestro microcontrolador y poder determinar si el encoder esta girando en un sentido u otro, esta característica de los Timers es muy usada para el manejo de motores para determinar su sentido y recorrido del eje.

In this video we are going to simulate the AB signals that a quadrature encoder normally generates, these signals can be inserted into a Timer (The timer must be able to accept an encoder signal) of our microcontroller and be able to determine if the encoder is rotating in one direction. Another, this feature of the Timers is widely used for the management of motors to determine their direction and axis travel.

En este video usaremos el periférico ADC1 y ADC3 para convertir la señal ADC que podemos generar con la ayuda de 3 potenciometros o resistencias variables , además de poder leer el valor del voltaje de referencia conectado al microcontrolador, voltaje de la bateria (VBat) y el valor de la temperatura interna del mismo, todas estas lecturas las realizaremos en modo polling, es decir que en el while infinito ordenaremos las conversiones y esperaremos a que el periférico las realice.

In this video we will use the ADC1 and ADC3 peripheral to convert the ADC signal that we can generate with the help of 3 potentiometers or variable resistors, in addition to being able to read the value of the reference voltage connected to the microcontroller, battery voltage (VBat) and the value of the internal temperature of the same, all these readings will be carried out in polling mode, that is, in the infinite while we will order the conversions and wait for the peripheral to perform them.

En este video usaremos el periférico ADC para convertir señales analógicas a un valor digital, por cuestiones didácticas este ejemplo lo haremos en resolución de 8 bits para ADC1, es decir un valor máximo de 255 en 3,3VDC, habilitaremos la interrupción del ADC para que nos informe cuando el periférico haya terminado una conversión completa de un canal o un conjunto de canales, este aviso nos puede servir para agregar filtros adicionales a nuestos valores resultantes.

In this video we will use the ADC peripheral to convert analog signals to a digital value, for didactic reasons we will do this example in 8-bit resolution for ADC1, that is, a maximum value of 255 at 3.3VDC, we will enable the ADC interrupt so that inform us when the peripheral has finished a complete conversion of a channel or a set of channels, this notice can be used to add additional filters to our resulting values.

En este video realizaremos la conversión de señal analógica a un valor digital de varios canales, todo esto lo haremos usando la ayuda del periférico DMA que como sabemos es un periferico de tipo Master como el CPU , el cual lo configuraremos para que al finalizar una conversión completa del ADC proceda a copiar los valores resultantes en un vector de lecturas, al usar este método de lectura del ADC estamos quitando carga al CPU y aprovechando para realizar otras actividades de procesamiento.

In this video we will perform the conversion of the analog signal to a digital value of several channels, we will do all this using the help of the DMA peripheral that as we know is a Master type peripheral such as the CPU, which we will configure so that at the end of a conversion complete the ADC proceed to copy the resulting values into a reading vector, by using this ADC reading method we are taking the load off the CPU and taking advantage of it to perform other processing activities.

En este video aprenderemos a usar el periférico DAC para poder generar señal analógica en un GPIO a partir de un valor digital, este periférico puede ser muy útil para generar señales especiales como señal triangular, senoidal, etc, el rango de salida es de 0 a 3.3 VDC y su máxima resolución de entrada al periférico es de 12 bits 0b111111111111, es decir cuando insertemos 4095 al DAC, obtendremos 3.3 VDC a la salida del GPIO configurado.

In this video we will learn to use the DAC peripheral to be able to generate analog signal in a GPIO from a digital value, this peripheral can be very useful to generate special signals such as triangular, sinusoidal, etc., the output range is from 0 to 3.3 VDC and its maximum input resolution to the peripheral is 12 bits 0b111111111111, that is, when we insert 4095 to the DAC, we will obtain 3.3 VDC at the output of the configured GPIO.

En este video aprenderemos a implementar el protocolo de comunicación I2C por medio de los periféricos disponibles en el microcontrolador, la velocidad de transmisión de datos por este protocolo es normalmente de 100 y 400 KHz, en algunos otros microcontroladores STM32 podemos subir a 1 MHz, es un protocolo diseñado para comunicarse con procesasdores o periféricos externos al microcontrolador, una de las ventajas de este protocolo es la cantidad de lineas a usar para varios esclavos I2C frente a otros protocolos, y una de las principales desventajas es la velocidad a la que se puede trabajar.

In this video we will learn to implement the I2C communication protocol through the peripherals available in the microcontroller, the data transmission speed through this protocol is normally 100 and 400 KHz, in some other STM32 microcontrollers we can go up to 1 MHz, it is a protocol designed to communicate with processors or peripherals external to the microcontroller, one of the advantages of this protocol is the number of lines to use for several I2C slaves compared to other protocols, and one of the main disadvantages is the speed at which it can be used. to work.

En este video usaremos similares recursos que el video anterior para el uso del I2C de nuestro microcontrolador, podemos usar dos tarjetas o una sola con doble periférico I2C, en esta vez habilitaremos las interrupciones del I2C, podemos tener 2 tipos de interrupción para los protocolos de comunicación, uno para transmitir y otro para recibir datos, nos ayudaremos de igual manera de un botón para probar el ejemplo.

Investigando Problemas con el desarrollo de la Transmisión en Modo Interrupción con las librerías HAL Drivers, se ha encontrado con la novedad que en muchas instancias se tiene problemas con su implementacion, por ello a continuación se lista los procesadores con los cuales se ha probado.

Sin novedad:

     STM32F051

     STM32F303

Con Errores:

    STM32F429

    STM32F746

In this video we will use similar resources as the previous video to use the I2C of our microcontroller, we can use two cards or a single card with double I2C peripherals, this time we will enable the I2C interruptions, we can have 2 types of interruption for the protocols of communication, one to transmit and another to receive data, we will help each other in the same way with a button to test the example.

Investigating Problems with the development of the Transmission in Interruption Mode with the HAL Drivers libraries, he has found the novelty that in many instances there are problems with its implementation, therefore the processors with which it has been tested are listed below.

No news:

     STM32F051

      STM32F303

With mistakes:

     STM32F429

     STM32F746

En este video usaremos el protocolo SPI para comunicar 2 tarjetas STM32 (STM32F3 Discovery y STM32F429 Discovery), enviaremos una trama desde el SPI master STM32F3 Discovery al Slave STM32F429 Discovery en modo Full Duplex, esto se lo hará a 9 Mbit/s y un ancho de dato de 8 bits, una de las ventajas frente a otros protocolos de comunicación entre procesadores o con periféricos es la cantidad de líneas necesarias para implementarlo, además de ello se requiere una línea adicional por cada esclavo extra que se quiera añadir a la red SPI en cuestión, asimismo hay ventajas sobre los otros protocolos y pues con SPI se puede tener altas velocidades de transmisión.

In this video we will use the SPI protocol to communicate 2 STM32 cards (STM32F3 Discovery and STM32F429 Discovery), we will send a frame from the SPI master STM32F3 Discovery to the Slave STM32F429 Discovery in Full Duplex mode, this will be done at 9 Mbit / s and a width of 8-bit data, one of the advantages compared to other communication protocols between processors or with peripherals is the number of lines necessary to implement it, in addition to this, an additional line is required for each extra slave that you want to add to the SPI network in Question, there are also advantages over the other protocols and because with SPI you can have high transmission speeds.

En este video usaremos el protocolo SPI para comunicar 2 tarjetas STM32 (STM32F3 Discovery y STM32F429 Discovery) en modo interrupción, enviaremos una trama desde el SPI master STM32F3 Discovery al Slave STM32F429 Discovery en modo Full Duplex, contaremos el número de veces que interrumpe el programa principal al finalizar un proceso de transmisión y recepción de datos, esto se lo hara a 9 Mbit/s y un ancho de dato de 8 bits.

In this video we will use the SPI protocol to communicate 2 STM32 cards (STM32F3 Discovery and STM32F429 Discovery) in interrupt mode, we will send a frame from the SPI master STM32F3 Discovery to the Slave STM32F429 Discovery in Full Duplex mode, we will count the number of times the program interrupts main at the end of a data transmission and reception process, this will be done at 9 Mbit / s and a data width of 8 bits.

En este video usaremos el protocolo SPI para comunicar 2 tarjetas STM32 (STM32F3 Discovery y STM32F429 Discovery) en modo DMA, enviaremos una trama desde el SPI master STM32F3 Discovery al Slave STM32F429 Discovery en modo Full Duplex, al usar DMA quitaremos carga al CPU, esto se lo hará a 9 Mbit/s y un ancho de dato de 8 bits.

In this video we will use the SPI protocol to communicate 2 STM32 cards (STM32F3 Discovery and STM32F429 Discovery) in DMA mode, we will send a frame from the SPI master STM32F3 Discovery to the Slave STM32F429 Discovery in Full Duplex mode, by using DMA we will remove the load from the CPU, this it will be done at 9 Mbit / s and a data width of 8 bits.

En este video pondremos al microcontrolador de un estado normal (Titilando Leds) al modo Sleep que es uno de los estados de bajo consumo de energía, para levantarlo y restablecer su normal funcionamiento se lo hará mediante el uso del botón azul de usuario conectado al GPIO PA0 que sera configurado en modo EXTI.

In this video we will put the microcontroller from a normal state (Blinking LEDs) to Sleep mode, which is one of the states of low power consumption, to lift it up and restore its normal operation will be done by using the blue user button connected to the GPIO PA0 that will be configured in EXTI mode.

En este video pondremos al microcontrolador de un estado normal (Titilando Leds) al modo Stop que es uno de los estados de bajo consumo de energía, mas bajo consumo que el modo Sleep, se requiere mas tiempo para regresar a un estado normal ya que en este modo se configura también el reloj del sistema y no solo los GPIO, para levantarlo y restablecer su normal funcionamiento se lo hara mediante el uso del botón azul de usuario conectado al GPIO PA0 que sera configurado en modo EXTI.

In this video we will put the microcontroller from a normal state (Blinking LEDs) to Stop mode, which is one of the states of low energy consumption, lower consumption than Sleep mode, it takes more time to return to a normal state since in This mode also configures the system clock and not only the GPIO, to lift it up and restore its normal operation, it will be done by using the blue user button connected to the GPIO PA0 that will be configured in EXTI mode.

En este video pondremos al microcontrolador de un estado normal (Titilando Leds) al modo Standby que es uno de los estados de mas bajo consumo de energía, para levantarlo y restablecer su normal funcionamiento se lo hace solamente con el GPIO WKPP del botón azul de usuario conectado al GPIO PA0.

In this video we will put the microcontroller from a normal state (Blinking LEDs) to Standby mode, which is one of the states with the lowest power consumption, to lift it and restore its normal operation it is done only with the GPIO WKPP of the blue user button connected to GPIO PA0.

En este video generaremos números aleatorios de 32 bits con ayuda del periférico de hardware RNG (Random Numeric Generator), para ello nos ayudaremos del botón de ususario para que cada vez que se presione el botón se genere 10 números y se los guarde en un vector para poder apreciarlo.

In this video we will generate 32-bit random numbers with the help of the RNG hardware peripheral (Random Numeric Generator), for this we will use the user button so that each time the button is pressed, 10 numbers are generated and saved in a vector to be able to appreciate it.

En este video aprenderemos a configurar y usar el RTC (Reloj de Tiempo Real) de la tarjeta STM32F429 Discovery, por cuestiones didácticas usaremos el oscilador interno del microcontrolador, es poco preciso pero nos ayudará a entender su funcionamiento, para aplicaciones reales se recomienda usar un buen oscilador para RTC y colocar los capacitores adecuados para su correcto funcionamiento (Consultar datasheet para RTC).

In this video we will learn to configure and use the RTC (Real Time Clock) of the STM32F429 Discovery card, for didactic reasons we will use the internal oscillator of the microcontroller, it is not very precise but it will help us to understand its operation, for real applications it is recommended to use a good oscillator for RTC and place the appropriate capacitors for its correct operation (Consult datasheet for RTC).

En este video usaremos la opción de programar alarmas con el RTC, habilitar su interrupción para que nos avise que ha ocurrido un evento, podemos tener hasta 2 alarmas en este microcontrolador (STM32F429).

In this video we will use the option of programming alarms with the RTC, enabling its interruption to notify us that an event has occurred, we can have up to 2 alarms in this microcontroller (STM32F429).

En este video aprenderemos a usar los Backup Registers, los mismo que nos ayudaran a retener información de forma remanente mientras este con energía la bateria que se vaya a usar en nuestra aplicación.

In this video we will learn to use the Backup Registers, the same ones that will help us to retain information remotely while the battery that is going to be used in our application is energized.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses HAL Drivers, which makes it easier to recycle functions and code, streamlining the development process for various STM32 projects
Covers a wide range of STM32 peripherals, including GPIO, USART, Timers, ADC, DAC, I2C, SPI, RTC, and low-power modes, providing a comprehensive overview
Uses STM32CubeIDE, a free and readily available IDE from ST Microelectronics, lowering the barrier to entry for developers
Explores advanced topics such as interrupt handling, DMA, and low-power modes, enabling developers to create more efficient and responsive applications
Requires additional hardware, such as a USB to serial TTL converter and potentially two STM32 boards for certain SPI examples, which may increase costs
Highlights potential issues with HAL Drivers in interrupt mode for certain STM32 processors, requiring learners to be aware of compatibility considerations

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Curso práctico de stm32 con hal drivers

Según los estudiantes, este curso es una excelente introducción práctica al mundo de los microcontroladores STM32 utilizando los HAL Drivers y STM32CubeIDE. Muchos aprecian la cantidad de periféricos cubiertos y los ejemplos de código funcionales que se proporcionan, considerándolo muy útil para principiantes. Se destaca su enfoque eminentemente práctico. Algunos señalan que si bien es una base sólida, ciertas secciones podrían tener mayor profundidad o que la calidad del audio/video podría mejorar. También se menciona que, aunque cubre varios periféricos, puede requerir adaptaciones de código dependiendo de la placa STM32 específica utilizada y la versión del entorno de desarrollo.
Se proporcionan ejemplos de código funcional.
"Los ejemplos de código proporcionados son claros y funcionan bien."
"Aprecio mucho que se incluyan los archivos RAR con los ejemplos para cada módulo."
"El código está bien comentado y es fácil de seguir."
"Los ejemplos de laboratorio facilitan mucho la comprensión y la puesta en marcha."
Recomendado para quienes inician con STM32.
"Excelente punto de partida para quienes no tienen experiencia previa con STM32."
"Si eres principiante con HAL drivers, este curso te da una buena base."
"Me ayudó a dar mis primeros pasos con STM32CubeIDE de manera efectiva."
"Es un curso ideal si estás comenzando en el mundo de los microcontroladores ARM y ST."
Cubre una amplia gama de periféricos STM32.
"El curso cubre una gran cantidad de periféricos esenciales del STM32."
"Muy completo en cuanto a los módulos de hardware que explica y programa."
"Me sirvió para entender cómo usar varios periféricos como USART, SPI, I2C, ADC, etc. con HAL."
"Abarca desde GPIOs básicos hasta temas como DMA, RTC y modos de bajo consumo."
Curso muy orientado a la práctica con ejemplos.
"Es muy didáctico y práctico, me ha ayudado a entender muchos periféricos."
"Me gustó mucho que fuera tan práctico, con muchos ejemplos de código funcionales."
"Los laboratorios prácticos me permitieron aplicar los conocimientos inmediatamente en mi tarjeta STM32."
"Lo que más me gusta es el enfoque práctico con HAL drivers, justo lo que buscaba para empezar mis proyectos."
"He podido seguir los ejemplos fácilmente y adaptarlos a mis necesidades."
Requiere ajustes según la placa o IDE.
"Tuve que hacer algunas adaptaciones para que el código funcione con mi placa NUCLEO."
"Los ejemplos se basan principalmente en la placa Discovery, lo que a veces dificulta el seguimiento con otras placas."
"Necesité modificar la configuración en STM32CubeIDE debido a cambios entre versiones del software."
Podría ahondar más en ciertos temas.
"En algunos temas, la explicación es un poco superficial, me gustaría más detalle."
"Siento que algunos módulos importantes se explican muy rápido."
"Útil para una visión general, pero para proyectos avanzados necesito buscar información adicional."
"Si bien cubre mucho, no profundiza lo suficiente en la teoría detrás de los periféricos."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Curso de STM32 con HAL Drivers en STM32CubeIDE ARM with these activities:
Revisar 'STM32 Arm Programming for Embedded Systems'
Proporcionar una base sólida en la arquitectura ARM y la programación de microcontroladores STM32.
Show steps
  • Leer los capítulos relevantes sobre la arquitectura ARM y los periféricos STM32.
  • Realizar los ejemplos de código proporcionados en el libro.
  • Comparar los ejemplos del libro con los ejemplos del curso.
Practicar la configuración de GPIO con STM32CubeIDE
Reforzar la habilidad de configurar los pines GPIO (Entrada/Salida de Propósito General) en STM32CubeIDE, un aspecto fundamental para controlar dispositivos externos.
Show steps
  • Configurar un pin GPIO como salida para controlar un LED.
  • Configurar un pin GPIO como entrada para leer el estado de un botón.
  • Combinar la entrada de un botón con la salida de un LED.
  • Experimentar con diferentes configuraciones de pull-up y pull-down.
Crear un tutorial sobre el uso de interrupciones externas
Profundizar en el manejo de interrupciones externas mediante la creación de un tutorial que explique el proceso paso a paso.
Show steps
  • Investigar a fondo el funcionamiento de las interrupciones externas en STM32.
  • Desarrollar un ejemplo práctico que demuestre el uso de interrupciones externas.
  • Escribir un tutorial detallado con capturas de pantalla y explicaciones claras.
  • Publicar el tutorial en un foro o blog para compartirlo con otros estudiantes.
Three other activities
Expand to see all activities and additional details
Show all six activities
Desarrollar un proyecto de control de un motor paso a paso
Aplicar los conocimientos adquiridos en el curso para controlar un motor paso a paso utilizando un microcontrolador STM32.
Show steps
  • Seleccionar un motor paso a paso y un driver adecuado.
  • Conectar el motor paso a paso al microcontrolador STM32.
  • Escribir el código para controlar el motor paso a paso, incluyendo la velocidad y la dirección.
  • Implementar un sistema de control de posición utilizando un encoder.
Leer 'Mastering STM32'
Ampliar los conocimientos sobre el desarrollo de sistemas embebidos con STM32 y explorar temas avanzados.
Show steps
  • Seleccionar los capítulos más relevantes para los intereses del estudiante.
  • Experimentar con los ejemplos de código y adaptarlos a proyectos personales.
  • Investigar los temas que no se cubren en el curso, como FreeRTOS o comunicaciones avanzadas.
Contribuir a un proyecto de código abierto relacionado con STM32
Ganar experiencia práctica y colaborar con otros desarrolladores contribuyendo a un proyecto de código abierto que utilice microcontroladores STM32.
Show steps
  • Buscar un proyecto de código abierto en GitHub o GitLab que utilice STM32.
  • Familiarizarse con el código base y la documentación del proyecto.
  • Identificar un bug o una funcionalidad que se pueda mejorar.
  • Contribuir con código, documentación o pruebas al proyecto.

Career center

Learners who complete Curso de STM32 con HAL Drivers en STM32CubeIDE ARM will develop knowledge and skills that may be useful to these careers:
Ingeniero de sistemas embebidos
Un Ingeniero de Sistemas Embebidos se dedica al diseño, desarrollo e implementación de sistemas informáticos integrados en dispositivos electrónicos. Este curso es fundamental para un ingeniero de sistemas embebidos ya que proporciona experiencia práctica con microcontroladores STM32, una plataforma común en el campo. Los conocimientos adquiridos en configuración de proyectos, manejo de GPIOs, interrupciones, comunicación serial, temporizadores, ADC, DAC, y protocolos como I2C y SPI, permiten al ingeniero controlar y gestionar los recursos del microcontrolador de manera eficiente. El manejo de modos de bajo consumo y generadores aleatorios también es útil para aplicaciones de bajo consumo de energía y otras aplicaciones de este tipo. Un ingeniero de sistemas embebidos debe tener un entendimiento profundo de estos periféricos. El curso, con su enfoque práctico y ejemplos descargables, prepara al ingeniero para abordar proyectos reales.
Desarrollador de Firmware
Un Desarrollador de Firmware crea el software de bajo nivel que controla el hardware de un dispositivo. Este curso es altamente relevante para un desarrollador de firmware, ya que se centra en la programación de microcontroladores STM32, un componente fundamental en muchos sistemas embebidos. El curso cubre temas esenciales como la configuración inicial del proyecto, la manipulación de GPIO, el manejo de interrupciones, la comunicación USART, el uso de temporizadores y la interacción con periféricos como ADC, DAC, I2C y SPI. Además, la capacidad de trabajar con modos de bajo consumo de energía y el uso de RTC son habilidades cruciales para un desarrollador de firmware. Un desarrollador de firmware se beneficia del enfoque práctico del curso y de los recursos descargables, lo cual le permite adquirir experiencia real en el desarrollo de firmware para sistemas embebidos. El conocimiento en drivers HAL, como los presenta este curso, es un activo para esta posicion.
Diseñador de Dispositivos IoT
Un Diseñador de Dispositivos IoT crea los dispositivos que forman parte del Internet de las Cosas. Es crucial para un diseñador de dispositivos IoT tener conocimientos en el manejo de microcontroladores, y este curso es apropiado ya que profundiza en el uso de los STM32. El curso proporciona habilidades para configurar GPIOs, interrupciones, comunicación serial (USART) y protocolos como I2C y SPI, esenciales para conectar sensores y actuar sobre el entorno. El conocimiento de los temporizadores y la gestión de los modos de bajo consumo son también cruciales para diseñador dispositivos con batería. La destreza adquirida en este curso con la interacción con los ADC y DAC permite al diseñador de dispositivos IoT integrar una amplia gama de sensores. Los ejemplos que el curso provee son muy valiosos con este objetivo.
Ingeniero de Robótica
Un Ingeniero de Robótica diseña, construye y programa robots y sistemas robóticos. Este curso ayuda a un ingeniero de robótica ya que proporciona una base sólida en el control de microcontroladores, esencial para el desarrollo de robots. La configuración de GPIOs, el manejo de interrupciones, la comunicación serial con USART y los protocolos I2C y SPI, el uso de temporizadores y la interacción con ADC y DAC son cruciales para controlar motores, sensores y otros componentes de un robot. El conocimiento de cómo implementar PWM con temporizadores y cómo leer señales de encoder también es invaluable para el control de movimiento. Un ingeniero de robótica puede usar los conocimientos del curso para desarrollar el firmware de un robot. El curso con su enfoque práctico es muy apropiado para comenzar este camino.
Ingeniero de hardware
Un Ingeniero de Hardware diseña, desarrolla y prueba componentes y sistemas electrónicos. Aunque este curso se enfoca en software, el conocimiento profundo del funcionamiento de los microcontroladores, como el STM32, es muy beneficioso para un ingeniero de hardware. La comprensión de cómo se programan y controlan los periféricos del microcontrolador a través de la configuración de GPIO, las interrupciones, la comunicación serial y los protocolos como I2C y SPI, es un plus. Un ingeniero de hardware puede usar esta información para diseñar hardware que funcione de forma óptima con el firmware. La capacidad de comprender los modos de bajo consumo y el uso de temporizadores y módulos ADC/DAC es crucial para diseñar componentes eficientes. Al tomar este curso un ingeniero de hardware conocerá los fundamentos de la programación de microcontroladores y así trabajar en equipo con los desarrolladores de firmware.
Consultor en Sistemas Embebidos
Un Consultor en Sistemas Embebidos asesora a empresas sobre la mejor manera de usar y desarrollar sistemas embebidos para diversas aplicaciones. Este curso es valioso para un consultor ya que proporciona un entendimiento práctico de microcontroladores STM32. El consultor debe conocer los detalles de configuración de GPIO, el uso de interrupciones, temporizadores, comunicación serial, y protocolos I2C y SPI, para poder recomendar la mejor solución a sus clientes. El entendimiento de los diferentes modos de bajo consumo y la interacción con ADC y DAC también es relevante, dada la creciente demanda de eficiencia energética. El consultor en sistemas embebidos se puede beneficiar en gran manera por los ejemplos y documentación que acompañan al curso, ya que esto da un contexto amplio.
Investigador en Sistemas Embebidos
Un Investigador en Sistemas Embebidos realiza investigaciones sobre nuevas tecnologías y desarrolla soluciones innovadoras en el campo de los sistemas embebidos. Este curso es útil para un investigador ya que le permite profundizar en el funcionamiento interno de microcontroladores STM32, un componente fundamental en muchos sistemas. Los conocimientos sobre la configuración detallada de periféricos, el manejo de interrupciones y DMA, la comunicación serial y los protocolos como I2C y SPI, le permiten entender cómo mejorar la eficiencia y el rendimiento de los sistemas embebidos. Un investigador se puede beneficiar del curso al conocer a fondo los periféricos de los microcontrolador, los modos de bajo consumo y de algunos temas más avanzados. Este curso, con su enfoque práctico, da la oportunidad de construir y probar soluciones en un entorno real.
Ingeniero de Automatización
Un Ingeniero de Automatización diseña, desarrolla y mantiene sistemas de control automático para procesos industriales y maquinaria. Este curso puede ser útil para un ingeniero de automatización ya que aborda conceptos clave para el control de sistemas en tiempo real mediante microcontroladores. La habilidad de un ingeniero de automatización en configurar y manipular periféricos como GPIO, temporizadores, ADC, DAC, y comprender la comunicación serial usando USART y los protocolos I2C y SPI son cruciales para el desarrollo de sistemas de control. Un ingeniero de automatización se beneficia el conocimiento de interrupciones y el uso de DMA, ya que son importantes para el procesamiento de datos en tiempo real. El uso de modos de bajo consumo también es aplicable en ciertas aplicaciones de automatización. El curso puede ayudar a construir una base para la implementación de sistemas automatizados.
Especialista en Pruebas de Hardware
Un Especialista en Pruebas de Hardware realiza pruebas exhaustivas de sistemas electrónicos para verificar su funcionamiento. Este curso es útil para un especialista en pruebas de hardware ya que brinda conocimientos sobre la programación y el control de los microcontroladores STM32. El entendimiento en configuración de GPIO, el uso de interrupciones, comunicación serial, temporizadores, y protocolos como I2C y SPI es relevante para un especialista en pruebas. Saber cómo interactuar con ADC y DAC es crucial para verificar la funcionalidad de las entradas y salidas analógicas de los componentes. Un especialista en pruebas de hardware se puede beneficiar del conocimiento en el uso de DMA y de los modos de bajo consumo, ya que lo puede aplicar en sus pruebas. Tener la práctica de este curso ayuda al especialista.
Técnico en Electrónica
Un Técnico en Electrónica se encarga de la instalación, mantenimiento y reparación de equipos electrónicos. Este curso puede ser útil para un técnico en electrónica ya que brinda un acercamiento a la programación y control de microcontroladores STM32. Los técnicos en electrónica que entienden cómo configurar GPIOs, usar interrupciones, manejar comunicación serial, y utilizar periféricos como ADC y DAC pueden diagnosticar y solucionar problemas en equipos que usan microcontroladores. La información en el curso sobre comunicación serial, temporizadores y protocolos I2C y SPI también puede ayudar en el mantenimiento de equipos. La habilidad para usar los modos de bajo consumo puede ayudar a diagnosticar problemas relacionados con la alimentación de la energía.
Ingeniero de Validación de Hardware
Un Ingeniero de Validación de Hardware verifica que el hardware cumpla con las especificaciones y requisitos de calidad. Este curso puede ayudar a un ingeniero de validación de hardware ya que provee conocimiento en el funcionamiento interno de los microcontroladores STM32. Al conocer los detalles de la configuración de GPIO, el uso de interrupciones, la comunicación serial, temporizadores, y protocolos como I2C y SPI, el ingeniero de validación puede diseñar pruebas efectivas para los componentes. Además, el entendimiento de cómo interactuar con ADC y DAC es crucial para validar la funcionalidad de las entradas y salidas del hardware, al igual que entender los modos de bajo consumo. Si bien el curso no es directamente un curso de validación, provee un insumo valioso para esta.
Ingeniero de Aplicaciones
Un Ingeniero de Aplicaciones trabaja con clientes para adaptar productos y soluciones tecnológicas a sus necesidades. Si bien este curso es sobre microcontroladores, un ingeniero en aplicaciones puede beneficiarse de este. El entendimiento de la configuración de GPIOs, el manejo de interrupciones, la comunicación serial, el uso de temporizadores, y la interacción con periféricos como ADC y DAC es útil para el ingeniero de aplicaciones, ya que estos conocimientos son la base de muchos sistemas electrónicos. Además, el entendimiento de los protocolos como I2C y SPI es útil para entender cómo se comunican entre sí los componentes electrónicos. Un ingeniero de aplicaciones puede usar el conocimiento adquirido en este curso para resolver problemas de clientes que involucran dispositivos con base en microcontroladores. Tomar el curso les permite una mejor comunicación.
Ingeniero de Soporte Técnico
Un Ingeniero de Soporte Técnico ayuda a los clientes con problemas y dudas sobre el funcionamiento de productos tecnológicos. Este curso puede ser útil para un ingeniero de soporte técnico que trabaje con productos basados en microcontroladores STM32. Los temas cubiertos en el curso, como la configuración de GPIOs, las interrupciones, la comunicación serial, el uso de temporizadores y el manejo de periféricos como ADC y DAC, son esenciales para comprender el funcionamiento de los sistemas a nivel de hardware. El conocimiento de los protocolos I2C y SPI es también relevante para el diagnóstico de problemas de comunicación entre dispositivos. El ingeniero de soporte se puede beneficiar del enfoque práctico y los ejemplos descargables del curso para entender mejor los productos que soportan a los clientes.
Profesor de electrónica
Un Profesor de Electrónica enseña los principios y prácticas de la electrónica. Este curso puede ser útil para un profesor que necesite ampliar su conocimiento sobre microcontroladores modernos. El curso aborda temas como configuración de GPIOs, el manejo de interrupciones, la comunicación serial (USART), el uso de temporizadores y la interacción con diferentes periféricos incluyendo ADC, DAC, I2C, y SPI. Un profesor puede tomar un curso como este para actualizar su conocimiento y estar al día con la tecnología actual, de esta manera, podrá enseñar mejor los principios de electrónica usando ejemplos prácticos, como los expuestos en este curso, y así mejorar su propia práctica como docente. El curso, por su naturaleza práctica, provee un gran entendimiento.
Diseñador de Circuitos Impresos
Un Diseñador de Circuitos Impresos crea los diseños físicos de las placas electrónicas. Este curso *puede* ser útil para un diseñador de circuitos impresos, ya que al entender el funcionamiento de los periféricos de un microcontrolador STM32, puede diseñar mejor la distribución de los pines en la placa. El conocimiento de cómo usar GPIOs, interrupciones, comunicación serial, temporizadores, ADC, DAC, I2C, y SPI puede ayudar al diseñador a optimizar el diseño de circuitos. Aunque este curso no se enfoca en el diseño de PCBs, tener una idea clara de cómo funcionan los componentes puede ayudar al diseñador a hacer mejores diseños, disminuyendo la posibilidad de errores. El conocimiento de los modos de bajo consumo puede influenciar en las decisiones de diseño.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Curso de STM32 con HAL Drivers en STM32CubeIDE ARM.
Este libro es una guía avanzada para programadores que buscan dominar los microcontroladores STM32. Cubre temas avanzados como FreeRTOS, comunicaciones y desarrollo de firmware. Es ideal para aquellos que desean profundizar en el desarrollo de sistemas embebidos con STM32 y ampliar sus habilidades más allá del contenido básico del curso.
Este libro proporciona una guía completa sobre la programación de microcontroladores STM32 utilizando ARM. Cubre temas como la configuración de periféricos, el manejo de interrupciones y la programación de bajo nivel. Es un recurso valioso para comprender los conceptos subyacentes de la programación de STM32 y complementar el contenido del curso.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser