//麻烦各位大神帮我看看这个程序,烧写入芯片后,串口调试助手上没有任何现象……
/*
串口通信引脚:
RXD-->PE0
TXD-->PE1
外部晶振:7.3728
波特率: 9600
*/
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 7372800UL
#define fosc 7372800
#define baud 9600
void uart1_init(void)
{
UCSR1B = 0x00;
UCSR1A = 0x00;
UCSR1C = (1 << UCSZ11) | (1 << UCSZ10);
UBRR1L = (fosc/16/(baud + 1))%256;
UBRR1H = (fosc/16/(baud + 1))/256;
UCSR1B = (1 << RXEN1) | (1 << TXEN1);
}
void putchar1(unsigned char c)
{
while(!(UCSR1A & (1 <<UDRE1)));
UDR1 = c;
}
unsigned char getchar1(void)
{
while(!(UCSR1A & (1 << RXC1)));
return UDR1;
}
void puts1(char *s)
{
while (*s)
{
putchar1(*s);
s ++;
}
putchar1(0x0a);
putchar1(0x0d);
}
int main(void)
{
//unsigned char i;
DDRE &=~ (1 << 0); //RXD
DDRE |= (1 << 1); //TXD
uart1_init();
puts1("Hello!");
while(1)
{
puts1("test ok!");
_delay_ms(500);
} return 0;
}
//其中,ATmega128 烧写下载的软件我是这样设置的
//串口调试助手上没有任何现象
|