📄 uart.c
字号:
/**************************************************************************** * * MODULE: uart.c * * COMPONENT: uart.c,v * * VERSION: * * REVISION: 1.2 * * DATED: 2006/09/05 13:45:53 * * STATUS: Exp * * AUTHOR: Ian Morris * * DESCRIPTION * * CHANGE HISTORY: * * 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: 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 + -