📄 usart.c
字号:
#include "atmega.h"
#include <avr/io.h>
#include <util/delay.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
/*****************************************************/
#define RSrevmax 10
unsigned char rs232revbuf[RSrevmax];
unsigned char rs232mark = 0;
unsigned char rs232writeP = 0;
/*****************************************************/
void init_usart(void)
{
UBRR0H = 0;
UBRR0L = 51;//8M晶体
UCSR0C = 0x06;//数据位8位
UCSR0A = 0x00;
UCSR0B = 0x90;//使能接收
}
/*****************************************************/
ISR(USART_RX_vect)
{
rs232revbuf[rs232writeP]=UDR0;
if(rs232writeP >= RSrevmax)rs232writeP = 0;
else rs232writeP++;
}
/*****************************************************/
ISR(USART_TX_vect)
{
}
/*****************************************************/
void send_com(unsigned char data)
{
UDR0 = data;
UCSR0B = UCSR0B | 0x08;//发送数据
}
/*****************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -