M16 串口调试助手都回的数据都是00 80 是怎么回事?代码如下
#include<iom16v.h>#define FOSC 8000000// Clock Speed
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1
unsigned char data;
void USART_Init( unsigned int ubrr)
{
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) );
/* Get and return received data from buffer */
data=UDR;
return UDR;
}
void USART_Transmit( )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) );
/* Put data into buffer, sends the data */
UDR = data;
}
void main( void )
{
USART_Init ( MYUBRR );
while(1)
{
USART_Receive( );
USART_Transmit();
}
}
如下图11111111
本帖最后由 pine222 于 2012-9-19 22:08 编辑1211111111111111111 晶振问题,熔丝位自动改了。{:sweat:}
页:
[1]