我的mega16a,USART通信只能传输7位数,求助原因?
时间:10-02
整理:3721RD
点击:
程序如下:#include <iom16v.h>
#include <macros.h>
const float clk=8000000;
const int baurd=9600;
void main()
{
unsigned int ubrr=0;
UCSRA&=0x00;
UCSRB&=0x00;
UCSRC=0x80;
UCSRB|=(1<<TXEN)|(1<<TXCIE);
UCSRC|=(1<<URSEL)|(3<<UCSZ0);
ubrr=(unsigned int)(clk/16/baurd-1);
UCSRC&=0x7f;
UBRRL=ubrr;
UBRRH=ubrr>>8;
while(1)
{
while(!(UCSRA&0x20));
UDR=128;
}
}
给UDR赋值为7F及以下值的时候,都正常,一旦超过7F,串口助手接受到的数据就开始乱,
比如赋值0x80的时候,收到的是AC,
求解答
#include <macros.h>
const float clk=8000000;
const int baurd=9600;
void main()
{
unsigned int ubrr=0;
UCSRA&=0x00;
UCSRB&=0x00;
UCSRC=0x80;
UCSRB|=(1<<TXEN)|(1<<TXCIE);
UCSRC|=(1<<URSEL)|(3<<UCSZ0);
ubrr=(unsigned int)(clk/16/baurd-1);
UCSRC&=0x7f;
UBRRL=ubrr;
UBRRH=ubrr>>8;
while(1)
{
while(!(UCSRA&0x20));
UDR=128;
}
}
给UDR赋值为7F及以下值的时候,都正常,一旦超过7F,串口助手接受到的数据就开始乱,
比如赋值0x80的时候,收到的是AC,
求解答