

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Comunes I/O
<a name="common-io"></a>

**importante**  <a name="deprecation-message-library"></a>
Esta biblioteca está alojada en el Amazon-FreeRTOS repositorio, que está en desuso. Recomendamos [empezar por aquí](freertos-getting-started-modular.md) al crear un nuevo proyecto. Si ya tiene un proyecto de Freertos existente basado en el Amazon-FreeRTOS repositorio ahora obsoleto, consulte la. [Amazon-FreeRTOS Guía de migración del repositorio de Github](github-repo-migration.md)

**Información general**

En general, los controladores de dispositivo son independientes del sistema operativo subyacente y son específicos de una configuración de hardware determinada. Una capa de abstracción de hardware (HAL) proporciona una interfaz común entre controladores y código de aplicación de nivel superior. La capa HAL abstrae los detalles de cómo funciona un controlador específico y proporciona una API uniforme para controlar dichos dispositivos. Puede utilizar las mismas API para obtener acceso a varios controladores de dispositivo a través de tarjetas de referencia basadas en varios microcontroladores (MCU).

Freertos [common I/O](https://docs.aws.amazon.com/freertos/latest/lib-ref/common-io/index.html) actúa como esta capa de abstracción de hardware. Proporciona un conjunto de API estándar para obtener acceso a dispositivos serie comunes en placas de referencia compatibles. Estas API comunes se comunican e interactúan con estos periféricos y permiten que el código funcione en todas las plataformas. Sin I/O lo común, escribir código para que funcione con dispositivos de bajo nivel es algo específico del fabricante de silicio.

**Periféricos admitidos**
+ UART
+ SPI
+ I2C

**Características admitidas**
+ Sincrónico read/write : la función no regresa hasta que se transfiere la cantidad de datos solicitada. 
+ Asincrónica read/write: la función regresa inmediatamente y la transferencia de datos se realiza de forma asíncrona. Cuando se completa la acción, se invoca una devolución de llamada de usuario registrado.

**Código específico del periférico**
+ I2C: combina varias operaciones en una sola transacción. Se utiliza para acciones de escritura y luego lectura en una sola transacción. 
+ SPI: transfiere datos entre la principal y secundaria, lo que significa que la escritura y la lectura se realizan simultáneamente.

**Portabilidad**

Para obtener más información, consulte la [ Guía de portabilidad de FreeRTOS](https://docs.aws.amazon.com/freertos/latest/portingguide/).