uart.h

来自「AVR Mega88 + nRF24L01 wireless 2.4GHz 」· C头文件 代码 · 共 62 行

H
62
字号
#ifndef _UART_H_#define _UART_H_


#define USART_RECEIVE_INTERRUPT   SIG_USART_RECV
#define USART_TRANSMIT_INTERRUPT  SIG_USART_DATA

#define USART_BAUD_RATE  9600

#define USART_BAUD_SELECT  F_CPU/16/USART_BAUD_RATE-1


#define USART_RX_BUFFER_SIZE 64  /* 2,4,8,16,32,64,128 or 256 bytes */
#define USART_TX_BUFFER_SIZE 32  /* 2,4,8,16,32,64,128 or 256 bytes */


#define USART_RX_BUFFER_MASK (USART_RX_BUFFER_SIZE - 1)
#define USART_TX_BUFFER_MASK (USART_TX_BUFFER_SIZE - 1)

#define USART_STATUS   UCSR0A
#define USART_CONTROL  UCSR0B
#define USART_DATA     UDR0
#define USART_UDRIE    UDRIE0

#define USART_FRAME_ERROR      0x0800              /* Framing Error by UART       */
#define USART_OVERRUN_ERROR    0x0400              /* Overrun condition by UART   */
#define USART_BUFFER_OVERFLOW  0x0200              /* receive ringbuffer overflow */
#define USART_NO_DATA          0x0100              /* no receive data available   */

/* Static Variables */
volatile static unsigned char USART_RxBuf[USART_RX_BUFFER_SIZE];
volatile static unsigned char USART_RxHead;
volatile static unsigned char USART_RxTail;
volatile static unsigned char USART_TxBuf[USART_TX_BUFFER_SIZE];
volatile static unsigned char USART_TxHead;
volatile static unsigned char USART_TxTail;
volatile static unsigned int  USART_READY;
volatile static unsigned int  USART_lastError;
volatile static unsigned int  USART_ERROR;

/* Prototypes */

extern void usart_init( unsigned int baudrate );

extern void usart_puts( const char *s );
extern void usart_putc( unsigned char data );
extern void usart_puts_p(const char *progmem_s ); 

extern unsigned  int usart_getc( void );

extern unsigned  int usart_ready( void );
extern int DataInReceiveBuffer( void );


//extern void usart_SendBin( unsigned char x );
extern void usart_SendBcd( unsigned char hexIn);
//extern void usart_8bitHex(unsigned int hexIn);
//extern void usart_16bitHex(unsigned int hexIn);


#endif

⌨️ 快捷键说明

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