uart_back.c

来自「ATmega128串口通信,在ICC AVR下编译成功」· C语言 代码 · 共 46 行

C
46
字号
/****************************************************
**晶振:内部7.3728MHz
**实现功能:将从PC机接受的字符返回PC机
**设置:波特率9600, 8 bit, 1 stop bit, 无校验
****************************************************/
#include <iom128.h>
#include <macros.h>

#define uchar unsigned char 
#define uint  unsigned int

void UART_init(void)
{
	UCSR0A = 0x00;		/*倍速					*/
	UCSR0B = 0x18;		/*允许接收和发送*/
	UCSR0C = 0x0E;		/*8位数据,1位停止位,无校验位				*/
	UBRR0H = 0x00;
	UBRR0L = 0x47;		/*9600					*/
}

uchar UART_recive(void)
{
    while (!(UCSR0A&(1<<RXC0))); /* 等待接收数据*/
    return UDR0;                 /* 获取并返回数据*/
}

void UART_transmit(uchar data)
{
    while(!(UCSR0A&(1<<UDRE0)));
    UDR0=data;
}

void main(void)
{
    uchar j;
    CLI();
    WDR();
    UART_init();
    SEI();
    while(1)
      {
      j=UART_recive(); 
      UART_transmit(j);
      }
}

⌨️ 快捷键说明

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