controladores STM32 HAL [cerrado]

3

He estado usando los microcontroladores ARM STM32 durante más de dos años, la mejor forma de codificación que he encontrado es usar las bibliotecas periféricas CMSIS y ST std, y creo que no tiene restricciones ni desventajas principales.

Pero ahora quiero probar los controladores HAL para compararlos con las bibliotecas estándar. Parece que ST ha introducido una herramienta, "STM32CubeMX", que podría configurar gráficamente el microcontrolador y generar código basado en controladores HAL. Mi problema es que no quiero usar su herramienta gráfica para generar mis códigos, pero después de muchas búsquedas en Internet no pude encontrar ningún tutorial o ejemplo para usar los controladores HAL directamente en mi proyecto.

Sin embargo, ST tiene un manual de usuario que describe cualquier cosa acerca de los controladores HAL, pero desafortunadamente tiene aproximadamente 1300 páginas y creo que me lleva mucho tiempo leerlo.

Realmente prefiero una instrucción corta o quizás un proyecto de ejemplo simple para usar GPIOs.

    
pregunta electro

2 respuestas

5

Si no desea utilizar la herramienta de generación de códigos STM32CubeMX pero aún necesita proyectos de ejemplo simples, debe usar los ejemplos de firmware STM32Cubexx que están disponibles para todas las series STM32.

Cada enlace tiene una nota de aplicación llamada "Ejemplos de firmware de STM32Cube para la Serie STM32xx" ( ejemplo para F4 ) que en realidad es una lista enorme de tablas Todos los ejemplos disponibles para todas las juntas de desarrollo.

También hay un manual de usuario para cada serie llamada "Descripción de los controladores HAL STM32xxxx" ( example for F4 ). Sí, este es el documento de 900 a 1300 páginas, pero no tiene que leerlo todo, solo abra la parte correspondiente. Hay una breve guía paso a paso al principio de cada capítulo. En el caso del controlador genérico GPIO:

  

27.2.2 Cómo usar este controlador

     
  1. Habilite el reloj GPIO AHB usando la siguiente función: __HAL_RCC_GPIOx_CLK_ENABLE ().
  2.   
  3. Configure los pin GPIO utilizando HAL_GPIO_Init ().      
    • Configure el modo IO usando el miembro "Modo" de GPIO_
    •   
    • Estructura InitTypeDef Active la resistencia desplegable y desplegable utilizando el miembro "Pull" de la estructura GPIO_InitTypeDef.
    •   
    • En el caso de selección de modo de salida o función alternativa: la velocidad se configura a través del miembro "Velocidad" de la estructura GPIO_InitTypeDef.
    •   
    • En el modo alternativo está la selección, la función alternativa conectada al IO se configura a través del miembro "Alternate" de   Estructura GPIO_InitTypeDef.
    •   
    • Se requiere el modo analógico cuando se utiliza un pin como canal ADC o salida DAC.
    •   
    • En caso de selección de interrupción / evento externo, el miembro "Modo" de la estructura GPIO_InitTypeDef selecciona el tipo (interrupción o evento)   y el evento desencadenante correspondiente (ascendente o descendente o ambos).
    •   
  4.   
  5. En el caso de la selección de modo de evento / interrupción externa, configure la prioridad IRQ de NVIC asignada a la línea EXTI usando HAL_NVIC_SetPriority () y   habilítelo usando HAL_NVIC_EnableIRQ ().
  6.   
  7. Para obtener el nivel de un pin configurado en el modo de entrada, use HAL_GPIO_ReadPin ().
  8.   
  9. Para establecer / restablecer el nivel de un pin configurado en el modo de salida, use HAL_GPIO_WritePin () / HAL_GPIO_TogglePin ().
  10.   
  11. Para bloquear la configuración del pin hasta el próximo restablecimiento, use HAL_GPIO_LockPin ().
  12.   
  13. Durante y justo después del restablecimiento, las funciones alternativas no están activas y los pines GPIO están configurados en el modo de entrada flotante (excepto JTAG   patas).
  14.   
  15. Los pines del oscilador LSE OSC32_IN y OSC32_OUT pueden usarse como propósito general (PC14 y PC15, respectivamente) cuando el oscilador LSE   esta apagado. El LSE tiene prioridad sobre la función GPIO.
  16.   
  17. Los pines del oscilador HSE OSC_IN / OSC_OUT se pueden usar como propósito general PH0 y PH1, respectivamente, cuando el oscilador HSE está apagado. los   HSE tiene prioridad sobre la función GPIO.
  18.   

En función de esto, también puede consultar las descripciones de las funciones en este documento y si realmente necesita un ejemplo, existen los paquetes de ejemplo STM32Cubexx ya mencionados y no tuvo que usar la herramienta STM32CubeMX en absoluto.

    
respondido por el Bence Kaulics
4

Visite STM32 discovery .net

El tipo que ejecuta esto ha desarrollado varias bibliotecas estándar y HAL con ejemplos y tutoriales para cada biblioteca. También puede discutir sus preguntas en la sección de comentarios de cada biblioteca. No utiliza la herramienta Cubo. Las bibliotecas se pueden agregar en entornos como Keil y Coocox.

    
respondido por el samwise_the_wise

Lea otras preguntas en las etiquetas

Comentarios Recientes

como alsa y hdmi no son compatibles ya que esto deshabilitará el soporte integrado de alsa. Como estos controladores están cerca de los controladores EN401 y AUE, es trivial evitar cualquier problema. (Los complementos UEFI Legacy no están relacionados con, por ejemplo, deshabilitar con FALLBACK OPCIONAL). Esto aún dependerá de algunos complementos para poder compilar (usando nahc siempre) pero, si está usando BUILD-INTEL-PARENT / INTEL-NVENCAL, puede acercarse a él. En general, la mejor forma de instalación... Lees verder