Esempio n. 1
0
static int init_base(uart_t uart, uint32_t baudrate)
{
    /*The base address of the chosen UART */
    unsigned long ulBase = g_ulUARTBase[uart];

    ROM_SysCtlPeripheralEnable(g_ulUARTPeriph[uart]);
    switch(uart){
#if UART_0_EN
        case UART_0:
            ROM_SysCtlPeripheralEnable(UART_0_PORT);
            ROM_GPIOPinConfigure(UART_0_RX_PIN);
            ROM_GPIOPinConfigure(UART_0_TX_PIN);
            ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
            break;
#endif
#if UART_1_EN
        case UART_1:
            ROM_SysCtlPeripheralEnable(UART_1_PORT);
            ROM_GPIOPinConfigure(UART_1_RX_PIN);
            ROM_GPIOPinConfigure(UART_1_TX_PIN);
            ROM_GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
            break;
#endif
    }
    ROM_UARTDisable(ulBase);
    ROM_UARTConfigSetExpClk(ulBase,UART_CLK, baudrate,
            (UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_ONE | UART_CONFIG_WLEN_8));
    ROM_UARTEnable(ulBase);

    return 0;
}
Esempio n. 2
0
/*
 * closeOptode turns off the Optode (removes power
 * and disables UART3).
 */
void closeOptode(void)
{
	//disable UART3 and its interrupt
	ROM_UARTIntDisable(UART3_BASE, UART_INT_RX);
	ROM_UARTDisable(UART3_BASE);

	//turn off power
	OPTODE_OFF;
}
Esempio n. 3
0
unsigned char Wiz610_get_buf(unsigned char *buf)
{
	unsigned char i;
	if(!cmd_get) return false;
	ROM_UARTDisable(WIZ610_UART_BASE);
	i=0;
	while(i<g_ulRxBufACount)
	{
		*buf++=g_ucRxBuf[i];
		i++;
	}
	*buf=0;
	cmd_get=false;
	i=g_ulRxBufACount;
	g_ulRxBufACount=0;
	frab=WIZ_IDLE;
	return i;
}
Esempio n. 4
0
static int init_base(uart_t uart, uint32_t baudrate)
{
    switch(uart){
#if UART_0_EN
        case UART_0:
            ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
            ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
            ROM_GPIOPinConfigure(GPIO_PA0_U0RX);
            ROM_GPIOPinConfigure(GPIO_PA1_U0TX);
            ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

            ROM_UARTDisable(UART0_BASE);
            ROM_UARTConfigSetExpClk(UART0_BASE,ROM_SysCtlClockGet(), baudrate,
                    (UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_ONE |
                     UART_CONFIG_WLEN_8));


            ROM_UARTEnable(UART0_BASE);
            break;
#endif
        }
    return 0;
}
Esempio n. 5
0
void uart_poweroff(uart_t uart)
{
    /*The base address of the chosen UART */
    unsigned long ulBase = g_ulUARTBase[uart];
    ROM_UARTDisable(ulBase);
}
Esempio n. 6
0
void wiz610_uart_isr(void)
{
		unsigned long ulStatus;
		unsigned long ulMode;
		unsigned char data;
	    ulStatus = ROM_UARTIntStatus(WIZ610_UART_BASE, true);
	    ROM_UARTIntClear(WIZ610_UART_BASE, ulStatus);
	    if(cmd_modbus_switch)
	    {
	    	// ������ � ������� � ��������� ������
	    if(ulStatus==UART_INT_RX)
	    {
	    	g_Wiz610_fRX=true;
	    	cmd_get=false;
	    	while(!(HWREG(WIZ610_UART_BASE + UART_O_FR) & UART_FR_RXFE))
	    	{
	    		data=HWREG(WIZ610_UART_BASE+UART_O_DR);
	    		if(frab==WIZ_IDLE)
	    		{
	    			if(data=='<') frab=WIZ_START;
	    			if(data=='>') frab=WIZ_STOP;
	    			cmd_get=false;
	    		}
	    		else
	    		{
	    			if(frab==WIZ_START)
	    			{
	    				if(data=='>') frab=WIZ_STOP;
	    				else
	    				{
	    					g_ucRxBuf[g_ulRxBufACount]=data;
	    					g_ulRxBufACount=(g_ulRxBufACount+1)&0x7f;
	    				}
	    			}
	    		}
	    		if(frab==WIZ_STOP)
	    		{
	    			ROM_UARTDisable(WIZ610_UART_BASE);
	    			cmd_get=true;
	    		}

	    	}
	    }
	}
	else
	{
	    	// ������ � ������ ������
	    	if(ulStatus==UART_INT_TX)
	    	{
	    		g_ulRxBufACount=0;

	    	}
	    	if(ulStatus==UART_INT_RX)
	        {
	    		if(modbus_tcp_rab==MODBUS_TCP_IDLE)
	    		{
	    			g_ulRxBufACount=0;
	    			modbus_tcp_rab=MODBUS_TCP_RCV;
	    			xMBPortEventPost(EV_READY);
	    		}
	    		while(!(HWREG(WIZ610_UART_BASE + UART_O_FR) & UART_FR_RXFE))
	    			    	{
	    						data=HWREG(WIZ610_UART_BASE+UART_O_DR);
	    						g_ucRxBuf[g_ulRxBufACount]=data;
	    						g_ulRxBufACount=(g_ulRxBufACount+1)&0x7f;
	    			    	}

	    	   if(g_ulRxBufACount==WIZ_MB_TCP_UID)
	    	   {
	    		   len_data=g_ucRxBuf[4]<<8;
	    		   len_data|=g_ucRxBuf[5];
	    		   len_data=g_ulRxBufACount+len_data;
	    	   }
	    	   if(g_ulRxBufACount==len_data)
	    	   {
	    		   xMBPortEventPost(EV_FRAME_RECEIVED);
	    	   }
	        }
	    }
}
Esempio n. 7
0
void uart_poweroff(uart_t uart)
{
    ROM_UARTDisable(UART0_BASE);
}