📄 usart.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -