Vous êtes sur la page 1sur 3

1.

STM32 HAL Y MANUAL LL

Los controladores HAL fueron diseñados para ofrecer un amplio conjunto de API e interactuar
fácilmente con las capas superiores de la aplicación. Cada controlador consta de un conjunto
de funciones que cubren las características periféricas más comunes.

El desarrollo de cada controlador está impulsado por una API común que estandariza la
estructura del controlador, las funciones y los nombres de los parámetros.

Los controladores HAL incluyen un conjunto de módulos de controlador, cada módulo está
vinculado a un periférico independiente. Sin embargo, en algunos casos, el módulo está
vinculado a un modo funcional periférico. Como ejemplo, existen varios módulos para el
periférico USART: módulo controlador UART, módulo controlador USART, módulo controlador
SMARTCARD y módulo controlador IRDA.

1.1 HAL Y ARCHIVOS DE APLICACIÓN DE USUARIO

ARCHIVO DESCRIPCION
stm32f1xx_hal_ppp. Archivo de controlador principal de periférico / módulo.
c
Incluye las API que son comunes a todos los dispositivos
STM32.
Ejemplo: stm32f1xx_hal_adc.c, stm32f1xx_hal_irda.c
32f1xx_hal_ppp. Archivo de encabezado del archivo C del controlador
h
principal
Incluye datos comunes, estructuras de manejo y
enumeración, definir sentencias y macros, así como el
genérico exportado APIs.
Ejemplo: stm32f1xx_hal_adc.h, stm32f1xx_hal_irda.h
stm32f1xx_hal_ppp_ex. Archivo de extensión de un controlador de periférico /
c
módulo. Incluye las API específicas para un número de
parte o familia dada, así como las API recién definidas que
sobrescriben las API genéricas predeterminadas si el
proceso interno se implementa de manera diferente.
Ejemplo: stm32f1 xx_hal_adc_ex.c,
stm32f1xx_hal_dma_ex.c
stm32f1xx_hal_ppp_ex. Archivo de encabezado del archivo de extensión C.
h
Incluye los datos específicos y las estructuras de
enumeración, define declaraciones y macros, así como las
API específicas del número de pieza del dispositivo
exportado.
Ejemplo: stm32f1xx_hal_adc_ex.h,
stm32f1xx_hal_dma_ex.h
stm32f1xx_hal. Este archivo se utiliza para la inicialización de HAL y
c
contiene DBGMCU, Remap y Time Delay basados en las API
de SysTick.
stm32f1xx_hal_msp_template. Archivo de plantilla para copiar en la carpeta de la
c
aplicación del usuario. Contiene la inicialización y
desinicialización de MSP (rutina principal y devoluciones de
llamada) del periférico utilizado en la aplicación del
usuario.
1.2 ARCHIVOS DE LA APLICACIÓN DE USUARIO
system_stm32f1xx. Este archivo contiene SystemInit () que se llama al inicio
c
justo después del reinicio y antes de bifurcarse al programa
principal. No configura el reloj del sistema al inicio
(contrario a la biblioteca estándar). Esto se debe hacer
utilizando las API de HAL en los archivos de usuario.
Permite reubicar la tabla de vectores en SRAM interna.
startup_stm32f1xx. Archivo específico de la cadena de herramientas que
s
contiene un controlador de reinicio y vectores de
excepción. Para algunas cadenas de herramientas, permite
adaptar el tamaño de la pila / montón para que se ajuste a
los requisitos de la aplicación.
stm32f1xx_hal_msp. Este archivo contiene la inicialización y des inicialización de
c
MSP (rutina principal y devoluciones de llamada) del
periférico utilizado en la aplicación del usuario.
stm32f1xx_hal_conf. Este archivo permite al usuario personalizar los
h
controladores HAL para una aplicación específica.
No es obligatorio modificar esta configuración. La
aplicación puede usar la configuración predeterminada sin
ninguna modificación.
stm32f1xx_it.c/. Este archivo contiene el controlador de excepciones y la
h
rutina de servicio de interrupción de periféricos, y llama a
HAL_IncTick() a intervalos de tiempo regulares para
incrementar una variable local (declarada en
stm32f1xx_hal.c) utilizada como base de tiempo HAL. Por
defecto, esta función se llama cada 1 ms en Systick ISR. .
La rutina PPP_IRQHandler() debe llamar a
HAL_PPP_IRQHandler() si se utiliza un proceso basado en
interrupciones dentro de la aplicación.
main.c/.h Este archivo contiene la rutina principal del programa,
principalmente:
 la llamada a HAL_Init ()
 Implementación del asert_failed ()
 configuración del reloj del sistema
 Inicialización periférica HAL y código de aplicación
de usuario.

COMUNICACIONES EN SERIE DE BITS(USART).

El tren de pulso digital entre los nodos se compone de un bit de inicio, ocho bits de datos y un
bit de parada. Todos estos bits juntos se consideran una sola trama. Debe tener en cuenta que
los bits de inicio y parada tienen un 50% más de duración que los bits de datos. Esta diferencia
en la duración del pulso es cómo el UART distingue los bits de inicio y parada de los bits de
datos. El nodo receptor debe detectar el bit de inicio para determinar cuándo comienza la
trama. El nodo receptor también se ha configurado para aceptar un número predeterminado
de bits de datos y si habrá o no uno o dos bits de parada. Los UART se pueden configurar para
enviar siete u ocho bits de datos, así como uno o dos bits de parada. También hay una
disposición para enviar un bit de paridad adicional, que ayuda a detectar errores de
transmisión. A menudo, los bits de paridad no se utilizan, especialmente en los casos en que el
canal de transmisión no es ruidoso o no hay retrasos en la línea de transmisión.

El USART es una variante del UART porque se puede usar una línea de reloj adicional entre
nodos.

No es necesario utilizar los bits de inicio y parada cuando dos nodos USART están
interconectados. Los bits de datos están claramente sincronizados con los impulsos de reloj,
que acorta la longitud de trama y mejora la eficiencia del canal de comunicación. Sin embargo,
siete u ocho bits de datos se pueden establecer, así como un bit de paridad, como fue el caso
para el nodo UART. También debería ser obvio por el nombre que un USART puede operar
como un UART, si así lo desea.

A menudo, es importante evaluar el estado de un nodo dado que puede participar


activamente en un enlace de comunicaciones. Puede suceder que la MCU de un nodo receptor
esté temporalmente bloqueada por algún motivo y, aunque la UART de un nodo remoto puede
enviar datos, es posible que el nodo receptor no pueda procesarlos. Por esta razón, hay líneas
de control de protocolo que se proporcionan en el hardware UART y USART para garantizar
que los datos se envíen y reciban cuando se permita.

Las dos líneas de control principales son solicitud de envío (RTS) y autorización de envío (CTS).
Un nodo que desea transmitir datos primero elevaría o establecería la línea RTS. El nodo
receptor entonces elevaría o establecería la línea CTS indicando que está bien enviar los datos.
Este proceso también se conoce como solicitud / reconocimiento y se usa comúnmente en
enlaces de comunicaciones full-duplex. Sin embargo, este protocolo no es realmente necesario
para los proyectos de libros porque la MCU de la placa de proyecto nunca se bloqueará y el
nodo receptor generalmente será una PC, que tampoco se bloqueará.

Vous aimerez peut-être aussi