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

📄 uart0.h

📁 mega128串口通讯源码API函数
💻 H
字号:
/*
*************************************************************************************************************
*
*                                         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 256 /* 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 128 /* 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -