Exemplo n.º 1
0
uint32_t UART_Putc(uint8_t ch) {
	uint32_t ret;
	
	ret = FIFO_PutByte(&tx_fifo, ch);
	if(ret != NRF_SUCCESS) {
		return ret;
	}
	
 	if (is_trans_complete_gs == 1) {
		is_trans_complete_gs = 0;
		FIFO_GetByte(&tx_fifo, &ch);
		NRF_UART0->EVENTS_TXDRDY = 0;
		SET_TX_BYTE(ch);
	}

	return ret;
}
Exemplo n.º 2
0
// support stdio printf
int fputc(int ch, FILE *f)
{
	uint32_t ret;
	uint8_t b;
	
	ret = FIFO_PutByte(&tx_fifo, ch);
	if(ret != NRF_SUCCESS) {
		return ret;
	}
	
 	if (is_trans_complete_gs == 1) {
		is_trans_complete_gs = 0;
		FIFO_GetByte(&tx_fifo, &b);
		NRF_UART0->EVENTS_TXDRDY = 0;
		SET_TX_BYTE(b);
	}
	
	return ch;
}
Exemplo n.º 3
0
// UART interrupt
void UART0_IRQHandler(void)
{
	char ch;

	if (NRF_UART0->EVENTS_RXDRDY != 0) {
		ch = NRF_UART0->RXD;
		NRF_UART0->EVENTS_RXDRDY = 0;

		FIFO_PutByte(&rx_fifo, ch);
		if (ch == FLOW_CONTROL_BYTE) {
			is_uart_rx_rdy_gs = 1;
		}
	}

	if (NRF_UART0->EVENTS_TXDRDY != 0) {
		NRF_UART0->EVENTS_TXDRDY = 0;
		if (FIFO_GetByte(&tx_fifo, &ch) == NRF_SUCCESS) {
			SET_TX_BYTE(ch);
		} else {
			is_trans_complete_gs = 1;
		}
	}
}
Exemplo n.º 4
0
void onRecvByteDone(uint8_t byte)
{
//    FIFO_Put(&USART_FIFO, &byte, 1);
    FIFO_PutByte(&USART_FIFO, byte);
}