44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
/*----------------------------------------------------------------------------
 | 
						|
 * Name:    Serial.c
 | 
						|
 * Purpose: Low Level Serial Routines
 | 
						|
 * Note(s): possible defines select the used communication interface:
 | 
						|
 *            __DBG_ITM   - ITM SWO interface
 | 
						|
 *----------------------------------------------------------------------------
 | 
						|
 * This file is part of the uVision/ARM development tools.
 | 
						|
 * This software may only be used under the terms of a valid, current,
 | 
						|
 * end user licence from KEIL for a compatible version of KEIL software
 | 
						|
 * development tools. Nothing else gives you the right to use this software.
 | 
						|
 *
 | 
						|
 * This software is supplied "AS IS" without warranties of any kind.
 | 
						|
 *
 | 
						|
 * Copyright (c) 2008-2011 Keil - An ARM Company. All rights reserved.
 | 
						|
 *----------------------------------------------------------------------------*/
 | 
						|
 | 
						|
#include <stm32f1xx.h>                  /* STM32F1xx Definitions              */
 | 
						|
#include "Serial.h"
 | 
						|
 | 
						|
#ifdef __DBG_ITM
 | 
						|
volatile int ITM_RxBuffer = ITM_RXBUFFER_EMPTY;  /*  CMSIS Debug Input        */
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
/*----------------------------------------------------------------------------
 | 
						|
  Write character to Serial Port
 | 
						|
 *----------------------------------------------------------------------------*/
 | 
						|
int SER_PutChar (int c) {
 | 
						|
__IO int i = 0;
 | 
						|
  ITM_SendChar(c);
 | 
						|
  return (c);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*----------------------------------------------------------------------------
 | 
						|
  Read character from Serial Port   (blocking read)
 | 
						|
 *----------------------------------------------------------------------------*/
 | 
						|
int SER_GetChar (void) {
 | 
						|
 | 
						|
  while (ITM_CheckChar() != 1) __NOP();
 | 
						|
  return (ITM_ReceiveChar());
 | 
						|
 | 
						|
}
 |