串口求救
#include <avr/io.h>
#include <util/delay.h>
#include <iom8v.h>
#include "IPGA204.h"
#define fosc 8000000//晶振8M
#define baud 9600//波特率9600
void putchar(unsigned char c);
unsigned char getchar(void);
int puts(char *s);
void puts_hh(char *s);
void uart_init(void);
void main(void)
{
unsigned char i=0;
uart_init();
while(1)
{
//i=0;
//i=getchar();
//putchar(0x0a);
//if(i!=0)
//{
//putchar(0x35);
_delay_ms(100);
putchar(0x73);
//putchar(11);
//putchar(i);
//_delay_ms(100);
//putchar(0x0a);
//putchar(0x0d);
//puts("please put in:");
//}
}
}
void putchar(unsigned char c)
{
while(!(UCSRA&(1<<UDRE)));
UDR=c;
}
unsigned char getchar(void)
{
while(!(UCSRA&(1<<RXC)));
return UDR;
}
int puts(char *s)
{
while(*s)
{
putchar(*s);
s++;
}
return 1;
}
void puts_hh(char *s)
{
while(*s)
{
putchar(*s);
s++;
}
putchar(0x0a);
putchar(0x0d);
}
void uart_init(void)
{
UCSRB=(1<<RXEN)|(1<<TXEN);
UBRRL=(fosc/16/baud-1)%256;
UBRRH=(fosc/16/baud-1)/256;
UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
//OSCCAL=0xFF;
}
代码如上。。。
不知为何,输出结果不对,串口输出始终是80 00 80不知是否有什么设置不对,求高手解答。。。
此帖出自
小平头技术问答
一周热门 更多>