usart.c

来自「无线收发程序」· C语言 代码 · 共 34 行

C
34
字号
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

void usart_init(unsigned int baud)
{
	UBRRH = (unsigned char)(baud>>8);
	UBRRL = (unsigned char)baud;

	/* 接收器与发送器使能,接收中断使能*/
	UCSRB = (1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN);
	/* 设置帧格式: 8 个数据位, 2 个停止位*/
	UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}

void usart_transmit(unsigned char data)
{
	/* 等待发送缓冲器为空 */
	while( !(UCSRA & (1<<UDRE) ) )
		;
	/* 将数据放入发送缓冲器,发送数据 */
	UDR = data;
}
unsigned char usart_receive(void)
{
	/* 等待接收数据 */
	while( !UCSRA & (1<<RXC) )
		;
	/* 从缓冲区中获取并返回数据 */
	return UDR;
}


⌨️ 快捷键说明

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