📄 uart.c
字号:
/****************************************************************************
*
* MODULE: uart.c
*
* COMPONENT: $RCSfile: uart.c,v $
*
* VERSION: $Name: $
*
* REVISION: $Revision: 1.2 $
*
* DATED: $Date: 2006/09/05 13:45:53 $
*
* STATUS: $State: Exp $
*
* AUTHOR: Ian Morris
*
* DESCRIPTION
*
* CHANGE HISTORY:
*
* $Log: uart.c,v $
* Revision 1.2 2006/09/05 13:45:53 gpfef
* New Copyright notice added
*
* Revision 1.1 2006/04/21 10:14:26 gpfef
* Initial Version
*
*
*
* LAST MODIFIED BY: $Author: gpfef $
* $Modtime: $
*
*
****************************************************************************
*
* This software is owned by Jennic and/or its supplier and is protected
* under applicable copyright laws. All rights are reserved. We grant You,
* and any third parties, a license to use this software solely and
* exclusively on Jennic products. You, and any third parties must reproduce
* the copyright and warranty notice and any other legend of ownership on each
* copy or partial copy of the software.
*
* THIS SOFTWARE IS PROVIDED "AS IS". JENNIC MAKES NO WARRANTIES, WHETHER
* EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
* ACCURACY OR LACK OF NEGLIGENCE. JENNIC SHALL NOT, IN ANY CIRCUMSTANCES,
* BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, SPECIAL,
* INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON WHATSOEVER.
*
* Copyright Jennic Ltd 2005, 2006. All rights reserved
*
****************************************************************************/
/****************************************************************************/
/*** Include files ***/
/****************************************************************************/
#include <jendefs.h>
#include <AppHardwareApi.h>
#include "serialq.h"
#include "uart.h"
/****************************************************************************/
/*** Macro Definitions ***/
/****************************************************************************/
/****************************************************************************/
/*** Type Definitions ***/
/****************************************************************************/
/****************************************************************************/
/*** Local Function Prototypes ***/
/****************************************************************************/
/****************************************************************************/
/*** Exported Variables ***/
/****************************************************************************/
/****************************************************************************/
/*** Local Variables ***/
/****************************************************************************/
/****************************************************************************/
/*** Exported Functions ***/
/****************************************************************************/
/****************************************************************************/
/*** Local Functions ***/
/****************************************************************************/
/****************************************************************************
*
* NAME: vUART_Init
*
* DESCRIPTION:
*
* PARAMETERS: Name RW Usage
* None.
*
* RETURNS:
* None.
*
* NOTES:
* None.
****************************************************************************/
PUBLIC void vUART_Init(void)
{
/* Enable UART 0: 19200-8-N-1 */
vAHI_UartEnable(E_AHI_UART_0);
vAHI_UartReset(E_AHI_UART_0, TRUE, TRUE);
vAHI_UartReset(E_AHI_UART_0, FALSE, FALSE);
vAHI_UartSetClockDivisor(E_AHI_UART_0, E_AHI_UART_RATE_19200);
vAHI_UartSetControl(E_AHI_UART_0, FALSE, FALSE, E_AHI_UART_WORD_LEN_8, TRUE, FALSE);
vAHI_UartSetInterrupt(E_AHI_UART_0, FALSE, FALSE, TRUE, TRUE, E_AHI_UART_FIFO_LEVEL_1);
}
/****************************************************************************
*
* NAME: vUART_StartTx
*
* DESCRIPTION:
*
* PARAMETERS: Name RW Usage
* None.
*
* RETURNS:
* None.
*
* NOTES:
* None.
****************************************************************************/
PUBLIC void vUART_StartTx(void)
{
/* Has interrupt driven transmit stalled (tx fifo is empty) */
if ( (u8AHI_UartReadLineStatus(E_AHI_UART_0) & E_AHI_UART_LS_THRE)
&& (!bSerialQ_Empty(TX_QUEUE)))
{
vAHI_UartWriteData(E_AHI_UART_0, u8SerialQ_RemoveItem(TX_QUEUE));
}
}
/****************************************************************************
*
* NAME: vUART_TxCharISR
*
* DESCRIPTION:
*
* PARAMETERS: Name RW Usage
* None.
*
* RETURNS:
* None.
*
* NOTES:
* None.
****************************************************************************/
PUBLIC void vUART_TxCharISR(void)
{
if(!bSerialQ_Empty(TX_QUEUE))
{
vAHI_UartWriteData(E_AHI_UART_0, u8SerialQ_RemoveItem(TX_QUEUE));
}
}
/****************************************************************************
*
* NAME: vUART_RxCharISR
*
* DESCRIPTION:
*
* PARAMETERS: Name RW Usage
* FALSE if successfull, TRUE if failed
*
* RETURNS:
* None.
*
* NOTES:
* None.
****************************************************************************/
PUBLIC bool_t bUART_RxCharISR(uint8 u8RxChar)
{
return bSerialQ_AddItem(RX_QUEUE, u8RxChar);
}
/****************************************************************************/
/*** END OF FILE ***/
/****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -