📄 1uart.c
字号:
//1UART.c : source file for the 1 UART
//
#include "1.h"
#include "1UART.h"
#include <delay.h>
#include <math.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
#define BUFF_SIZE 32
/////////////////////////////////////////////////////////////////////////////
//1UART
extern uchar input;
extern uchar output;
void uart_init(void)
{
//{{WIZARD_MAP(UART)
// Baud Rate: 19200
// Character Size: 8-bit
// Mode: Asynchronous
// Parity: Disabled
// Stop Bit: 1-bit
UBRRL = 0x19; //00011001
UBRRH = 0x00; //波特率19200
UCSRA = 0x00;
UCSRC = 0x86; //控制和状态寄存器10000110;bit7选择,bit2,1数据位8位,bit0上升沿输出,下降沿输入
UCSRB = 0x48; //01001000,bit6发送结束中断使能;bit3发送使能,TXD脚发送数据
//}}WIZARD_MAP(UART)
}
void send_char(unsigned char a)
{
UDR=a;
delay(1,8000);
}
SIGNAL(SIG_UART_TRANS) //USART发送完一个字节中断
{
if(test_send())
{
UDR=get_send();
}
}
void put_send(uchar a)
{
send_buff[input]=a;
if(input<BUFF_SIZE-1)
input++;
else
input=0;
}
uchar test_send(void)
{
if(output==input)
return 0;
else
return 1;
}
uchar get_send(void)
{
uchar temp;
if(output==input)
return 0;
else
{
temp=send_buff[output];
if(output<BUFF_SIZE-1)
output++;
else
output=0;
return temp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -