📄 usart.c.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 + -