uart.c

来自「通过在ATMEGA16」· C语言 代码 · 共 52 行

C
52
字号
#include "iom16v.h"
#include "macros.h"
#include "main.h"



void main(void)
{

uart_init();                 //TART初始化
SEI(); 
                    //全局中断使能
for(;;)
{

//USART_TXD(08); //发送时选择

int i= Uart_Receive( );//把接受到的数据在显示出来
USART_TXD(i);

}
}

//===============================================================
void uart_init(void)          //UART初始化
{ DDRD = 0x02;
     PORTD = 0x00;

UCSRA = 0x02; /*无倍速*/
     UCSRB = 0x18; /*允许接收和发送*/
     UCSRC = 0x06; /*8位数据,1位停止位,无校验*/
     UBRRH = 0x00;
     UBRRL = 12; /*9600*/

}

//===============================================================
void USART_TXD(uint8 data) //发送采用查询方式
{
while( !(UCSRA & BIT(UDRE)) );
UDR=data;
while( !(UCSRA & BIT(TXC )) );
UCSRA|=BIT(TXC);
}


/*数据接收,查询方式*/
unsigned char Uart_Receive( void ) {
while (!(UCSRA & (1<<RXC))); /* 等待接收数据*/
return UDR;    /* 获取并返回数据*/
}

⌨️ 快捷键说明

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