usart.c

来自「IARAVR多项功能测试+protues调试例程」· C语言 代码 · 共 52 行

C
52
字号
#define USART_C
#include "includes.h"
void UsartInit(void)
{
    // 晶振频率 : 4.0MHz
    // 通信参数: 8 Data, 1 Stop, No Parity 
    // 波特率:
    // UBRRL= 0x0C    19200;
    // UBRRL= 0x19    9600;
    // UBRRL= 0x33    4800;
    // UBRRL= 0x67    2400	
    UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);  //允许发送和接收,接收中断使能
    UCSRC |= (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8位数据位+1位停止位
    UBRRH = 0x00; 
    UBRRL = 0x4d;  
    //sei();
}

int PutChar(char c)
{
    if(c == '\n')
    {
        PutChar('\r');
    }
    UDR = c;
    while(!(UCSRA &(1<<UDRE)));
    UCSRA |= (1<<UDRE);
    return 0;
}


void SendNbyte(unsigned char *p,unsigned char L)
{
    unsigned char w;
    for(w=0;w<L;w++)
    {
       // UDR = *(p+w);
       // while(!(UCSRA &(1<<UDRE)));
        //UCSRA |= (1<<UDRE);
        PutChar(*(p+w));
    }
    
}

void PutStr(unsigned char *Str)
{
    while(*Str != '\0')
    {
        PutChar(*Str);
        Str++;
    }
}

⌨️ 快捷键说明

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