Biblioteca para configurar Pins GPIO de Loramesh endvice, solicitando y enviando datos de/a los nodos. Se basó en la siguiente biblioteca de Radioenge
Descargue todos los archivos de esta raíz e incluya en su proyecto. Este paso es obligatorio usarlos con STM8L Discovery Board y su "Biblioteca periférica estándar".
Como STM8L152C6T6 tiene solo una interfaz USART y el módulo Loramesh tiene dos, la elección de la interfaz se utilizará a través de la conexión de hardware. Es posible elegir dos formas de configurar USART: usando Arduino predeterminado o usando configuraciones manuales. El modo predeterminado de Arduino funciona bien con el módulo de malla Lora. Para configuraciones manuales, puede usar los tipos definidos en "STM8L15X_USART" proporcionados por ST.
//Easy way
uint32_t baudrate = 9600 ;
ArduinoSerialCommandsInit ( baudrate );
//Manual
/* USART configured as follow:
- BaudRate = 9600 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
*/
SerialCommandsInit ( 9600 , USART_WordLength_8b , USART_StopBits_1 , USART_Parity_No );Las características principales de la biblioteca se basan en las funciones para solicitar y enviar datos utilizando los pines conectados a otros módulos de red.
/* GpioConfig */
GpioConfig ( NODEID , PIN , GPIOMODE , PULL_R_TYPE );
/* GpioWrite */
GpioWrite ( NODEID , PIN , ValueForWrite );
/* GpioRead */
GpioRead ( NODEID , PIN , & ReturnedValue );Configure los pines GPIO con los siguientes modos:
/* DIGITAL_IN */
GpioConfig ( NODEID , PIN , DIGITAL_IN , PULL_R_TYPE );
/* DIGITAL_OUT */
GpioConfig ( NODEID , PIN , DIGITAL_OUT , PULL_R_TYPE );
/* ANALOG_IN */
GpioConfig ( NODEID , PIN , ANALOG_IN , PULL_R_TYPE );Configurar las resistencias de extracción con los siguientes tipos
/* PULL_OFF */
GpioConfig ( NODEID , PIN , DIGITAL_IN , PULL_OFF );
/* PULLUP */
GpioConfig ( NODEID , PIN , DIGITAL_OUT , PULLUP );
/* PULLDOWN */
GpioConfig ( NODEID , PIN , ANALOG_IN , PULLDOWN );La devolución de la solicitud de datos viene dada por el siguiente estado para indicar error o no:
/* MESH_OK */
while ( LocalRead ( & localId , & localNet , & localUniqueId ) != MESH_OK );
/* MESH_ERROR */
if ( GpioRead ( NODEID , PIN , & ReturnedValue ) == MESH_ERROR ){
//Invalid value
}El código de ejemplo se puede descargar de esta raíz siguiendo las instrucciones.
Descripción completa de la documentación aquí.
Lea esta guía.
@vjpamorim | @Radioenge |
|---|
@Marcoaoc |
|---|
¿Te gusta esta biblioteca? ¡Estrella este proyecto en Github!