微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 我的mega16a,USART通信只能传输7位数,求助原因?

我的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,
求解答

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top