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

📄 usart.c.bak

📁 这是一个基于AVR系列单片机的程序
💻 BAK
字号:
//串口发送与接收的例程

#include <avr/io.h>

#define 	BAUD 			9600 

//------------------------------------------------------------------------------
//名称:void SendByte(unsigned char SendByte)
//功能:通过串口发送一个字节
//------------------------------------------------------------------------------
void SendByte(unsigned char SendByte)
{
	while (!(UCSRA & (1 << UDRE)))
		;
	UDR = SendByte;
}

//------------------------------------------------------------------------------
//名称:unsigned char ReceiveByte(void)
//功能:通过串口接收一个字节
//------------------------------------------------------------------------------
unsigned char ReceiveByte(void)
{
	while (!(UCSRA & (1<<RXC)))
		;
	return UDR;
}

//------------------------------------------------------------------------------
//名称:void UsartInit(void)
//功能:初始化串口
//------------------------------------------------------------------------------
void UsartInit(void)
{	
	UBRRH = (F_CPU / 16 /BAUD - 1) / 256;
	UBRRL = F_CPU / 16 /BAUD - 1;
	//根据给出的的波特率、时钟频率计算UBRH、UBRL的值	
	UCSRB = (1 << RXEN) | (1 << TXEN);
	//允许发送接收
	UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);	
	//一个停止位,8位数据,无校验      
}

/******************************************************************************/
int main(void)
{
	UsartInit();	
	SendByte(0x5a);	
	
	for (; ;)
	{
		if (ReceiveByte() == 0xcd)
		{
			SendByte(0x12);
			SendByte(0x34);
			SendByte(0x56);
		}
	}
}

⌨️ 快捷键说明

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