nodemcu-firmware/components/platform/platform.c

100 lines
1.9 KiB
C

#include "platform.h"
#include "driver/uart.h"
int platform_init (void)
{
return PLATFORM_OK;
}
// ****************************************************************************
// UART
uint32_t platform_uart_setup( unsigned id, uint32_t baud, int databits, int parity, int stopbits )
{
UART_ConfigTypeDef cfg;
switch( baud )
{
case BIT_RATE_300:
case BIT_RATE_600:
case BIT_RATE_1200:
case BIT_RATE_2400:
case BIT_RATE_4800:
case BIT_RATE_9600:
case BIT_RATE_19200:
case BIT_RATE_38400:
case BIT_RATE_57600:
case BIT_RATE_74880:
case BIT_RATE_115200:
case BIT_RATE_230400:
case BIT_RATE_460800:
case BIT_RATE_921600:
case BIT_RATE_1843200:
case BIT_RATE_3686400:
cfg.baud_rate = baud;
break;
default:
cfg.baud_rate = BIT_RATE_9600;
break;
}
switch( databits )
{
case 5:
cfg.data_bits = UART_WordLength_5b;
break;
case 6:
cfg.data_bits = UART_WordLength_6b;
break;
case 7:
cfg.data_bits = UART_WordLength_7b;
break;
case 8:
default:
cfg.data_bits = UART_WordLength_8b;
break;
}
switch (stopbits)
{
case PLATFORM_UART_STOPBITS_1_5:
cfg.stop_bits = USART_StopBits_1_5;
break;
case PLATFORM_UART_STOPBITS_2:
cfg.stop_bits = USART_StopBits_2;
break;
default:
cfg.stop_bits = USART_StopBits_1;
break;
}
switch (parity)
{
case PLATFORM_UART_PARITY_EVEN:
cfg.parity = USART_Parity_Even;
break;
case PLATFORM_UART_PARITY_ODD:
cfg.parity = USART_Parity_Odd;
break;
default:
cfg.parity = USART_Parity_None;
break;
}
UART_ParamConfig (id, &cfg);
return baud;
}
// if set=1, then alternate serial output pins are used. (15=rx, 13=tx)
void platform_uart_alt( int set )
{
uart0_alt( set );
return;
}
void platform_uart_send( unsigned id, uint8_t data )
{
uart_tx_one_char(id, data);
}