⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.c

📁 CC1110 CC2510 片上flash操作工程实例 可能过串口终端完成片上flash的擦除或写入动作。
💻 C
字号:

//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------

#include "includes.h"

/******************************************************************************
 * @fn      initUART
 *
 * @brief   Initialize the UART
 *
 * @param   none
 *
 * @return  none
 *****************************************************************************/
void initUART(void)
{
#if UART_PORT == 0
		IO_PER_LOC_UART0_AT_PORT0_PIN2345();
  	UART_SETUP(0, 115200, HIGH_STOP);
    INT_SETFLAG(INUM_UTX0, INT_SET);
#else
		IO_PER_LOC_UART1_AT_PORT1_PIN4567();
  	UART_SETUP(1, 115200, HIGH_STOP);
   	INT_SETFLAG(INUM_UTX1, INT_SET);
#endif
}
/******************************************************************************
 * @fn      getUART
 *
 * @brief   Initialize the UART
 *
 * @param   none
 *
 * @return  get char
 *****************************************************************************/
char getUART (void)
{
   	char c;
   	byte status;

#if UART_PORT == 0
   	// Turning on reception
   	status = U0CSR;
   	U0CSR |= UART_ENABLE_RECEIVE;

   	while (!INT_GETFLAG(INUM_URX0));
   	c = U0DBUF;
	INT_SETFLAG(INUM_URX0, INT_CLR);

   	// Restoring old state
   	U0CSR = status;
#else
   	// Turning on reception
   	status = U1CSR;
   	U1CSR |= 0x40;

   	while (!INT_GETFLAG(INUM_URX1));
   	c = U1DBUF;
 	INT_SETFLAG(INUM_URX1, INT_CLR);

   	// Restoring old state
   	U1CSR = status;
#endif
   	return c;
}
/******************************************************************************
 * @fn      getchar
 *
 * @brief   Initialize the UART
 *
 * @param   none
 *
 * @return  none
 *****************************************************************************/
int putchar (int c)
{		
  	if (c == '\n')
#if UART_PORT == 0
    {
		while (!INT_GETFLAG(INUM_UTX0));
    	INT_SETFLAG(INUM_UTX0, INT_CLR);
		U0DBUF = 0x0d;       /* output CR  */
   	}

   	while (!INT_GETFLAG(INUM_UTX0));
    INT_SETFLAG(INUM_UTX0, INT_CLR);
   	return (U0DBUF = c);
#else
    {
		while (!INT_GETFLAG(INUM_UTX1));
		INT_SETFLAG(INUM_UTX1, INT_CLR);
		U1DBUF = 0x0d;       /* output CR  */
   	}

   	while (!INT_GETFLAG(INUM_UTX1));
   	INT_SETFLAG(UTX1IF, INT_CLR);
   	return (U1DBUF = c);
#endif
}

/*------------------------------------------------------------------------------
										  0ooo
								ooo0     (   )
								(   )     ) /
								 \ (     (_/
	    				          \_)        By:cuiqingwei [gary]
------------------------------------------------------------------------------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -