uart0.h

来自「AVR atmega64串口驱动」· C头文件 代码 · 共 54 行

H
54
字号
/*
*************************************************************************************************************
*
*                                         ATmega128  UART0 driver
*
* File : UART0.h
* By   : hjjft
*************************************************************************************************************
*/
#ifndef  UART0_H
#define  UART0_H
/////////////////////////////////////////////////
//              uart0驱动定义                  //
/////////////////////////////////////////////////

//定义串行接收和发送中断向量
//UART0_RX_interrupt 为RX结束中断
//UART0_TX_interrupt 为USART数据寄存器空中断
//#pragma interrupt_handler UART0_RX_interrupt:19 UART0_TX_interrupt:20

//初始化后默认为关中断
//允许串口0接收中断
#define Enable_UART0_RX()  UCSR0B |= (1<<RXCIE0)  
//禁止串口0接收中断        
#define Disable_UART0_RX() UCSR0B &= ~(1<<RXCIE0)

//串口数据缓存定义
#define UART0_RX_BUFFER_SIZE 512 /* 1,2,4,8,16,32,64,128 or 256 bytes */
#define UART0_RX_BUFFER_MASK ( UART0_RX_BUFFER_SIZE - 1 )
#define UART0_TX_BUFFER_SIZE 512 /* 1,2,4,8,16,32,64,128 or 256 bytes */
#define UART0_TX_BUFFER_MASK ( UART0_TX_BUFFER_SIZE - 1 )

#if ( UART0_RX_BUFFER_SIZE & UART0_RX_BUFFER_MASK )
#error RX0 buffer size is not a power of 2
#endif

#if ( UART0_TX_BUFFER_SIZE & UART0_TX_BUFFER_MASK )
#error TX0 buffer size is not a power of 2
#endif
//串口初始化函数
//baudrate: 串口波特率,例:9600
void UART0_InitUART( unsigned long baudrate );
//从接收缓存里接收一个字节
unsigned char UART0_ReceiveByte( void );
//将一个字节放入发送缓存
void UART0_TransmitByte( unsigned char data );
//发送一个const字符串(发送非const字符串会出错)
void UART0_Transmitconstr(const unsigned char *str); 
//发送一个非const字符串 
void UART0_Transmitstr(unsigned char *str);      
//判断接收缓存是否为空
unsigned char UART0_DataInReceiveBuffer( void );
#endif

⌨️ 快捷键说明

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