设置为外部高频高频,启动时间16CK+64ms,然后外接12M两脚晶体,这样设置有没有问题?写了个超简单的程序,就是调不出来,现在怀疑哪都有问题,代码如下 #include <avr/io.h> #include <avr/iom8.h> #include <avr/interrupt.h>
#define FOSC 12000000 //晶振12MHZ 根据实际外接晶体改变该值 #define BAUD 9600 //波特率 /*字符输出函数*/ void uart_putchar(unsigned char c) { while (!(UCSRA&(1<<UDRE))); UDR=c; } void uart_init(void) { /*允许发送和接收*/ UCSRB=(1<<RXEN)|(1<<TXEN); /*设置波特率*/ UBRRL=(FOSC/16/(BAUD+1))%256; UBRRH=(FOSC/16/(BAUD+1))/256; /*8位数据+1位STOP位*/ UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); }
int main(void) { uart_init(); uart_putchar(0xAA); while(1) { ; } return 0; } 串口上一直没有数 |