mega48串口怎么都不对

2019-03-24 20:16发布

/*
* AVRGCC1.c
*
* Created: 2016/10/23 17:11:04
*  Author: xuyuntonge
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
//#include <avr/interrupt.h>
#include <avr/signal.h>
#include <string.h>
#include <stdio.h>
#include <util/delay.h>


#define F_CPU 4000000UL   //初始化晶振频率

void USART_Init(unsigned char baud );
void USART_Transmit( unsigned char data );
unsigned char USART_Receive( void );
void USART_Init(unsigned char baud)
{
        unsigned int tmp;
        tmp= F_CPU/baud/16-1;
        UBRR0H = (unsigned char)(tmp>>8);
        UBRR0L = (unsigned char)tmp;
        UCSR0B = (1<<RXEN0)|(1<<TXEN0);
        UCSR0C = (1<<UMSEL00)|(3<<UCSZ00);
}
void USART_Transmit( unsigned char data )
{
        while ( !( UCSR0A & (1<<UDRE0)) );
        UDR0 = data;
}
unsigned char USART_Receive( void )
{
        while ( !(UCSR0A & (1<<RXC0)) );
        return UDR0;
}
int main(void)
{
                DDRD=0xff;
                USART_Init(9600);
            while (1)
                {
                        USART_Transmit(1);
                        _delay_ms(300);
                }
}

代码如上 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
xutong
2019-03-25 12:55
 精彩回答 2  元偷偷看……0人看过

一周热门 更多>