在线情况
楼主
  • 头像
  • 级别
    • 积分13
    • 经验355
    • 文章13
    • 注册2011-09-22
    请教 F149波特率19200的计算
    [P]请问F149 4M晶振19200波特率 UMCTL0寄存器的值是多少   我算了 可没成功 用了计算软件也不行[/P][P] [/P][P]void init_cpu(void)
    {
        char i;
        char j=10;
       
        WDTCTL=WDTPW+WDTHOLD;
    //    BCSCTL1&=~XT2OFF;//打开高频晶振
         BCSCTL1=0x00;//打开高频晶振  
        do
        {
           j--;
           IFG1&=~OFIFG;//高频晶振起振标志
           for(i=0xff;i>0;i--);
           if(j==0)
             WDTCTL=0;//晶体失败
        }
        while(IFG1&OFIFG);//判断是否为0
        BCSCTL2=SELM_2+SELS;//MCLK SMCLK=XT2
    }[/P][P]void init_uart0(void)
    {
        P3SEL|=BIT4+BIT5;
        P3DIR|=BIT4;
        P3DIR&=~BIT5;
       
        ME1|=UTXE0+URXE0;//允许收发
        UCTL0|=CHAR;
        UTCTL0|=SSEL0+SSEL1;//选择SMCLK
        UBR00=0xd0;
        UBR10=0X00;
        UMCTL0=0x40;
        UCTL0&=~SWRST;//清除逻辑 复位初始化
        IE1|=URXIE0;    
    }
    void main(void)
    {
         init_cpu();
         init_uart0();
         while(1)
         {
          _BIS_SR(LPM3_bits+GIE);
           while(!(IFG1&UTXIFG0));
           TXBUF0=RXBUF0;
         }
    }
    #pragma vector=UART0RX_VECTOR//接收
    __interrupt void uaet0_rw(void)
    {
        _BIC_SR_IRQ(LPM3_bits);
    }
    哪错了呢
    [/P]
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
      • 积分15
      • 经验505
      • 文章16
      • 注册2011-09-08
      [P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]串行通信异步模式波特率计算:[/SIZE][/FACE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]分频比[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UBRx[/FACE][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]◆分频率[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]N[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]:由送到分频器的时钟频率([/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]BRCLK[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt])和所需的波特率决定。[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman] [/SIZE][/LINE-HEIGHT]N=[/FACE][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]([/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]BRCLK[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt])[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]/[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]波特率[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]  [/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]如:[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]N=4MHz/9600=416.67[/FACE][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]取分频率[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]N[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]的整数部分作为分频比,即:[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UBRx=416=0x1A0H[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]。[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UBRx[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]通过两个寄存器控制[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UBR0x[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]和[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UBR1x[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]。[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UBRx=UBR1x<<8+UBR0x[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]。[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]因此,[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UBR1x=0x01; UBR0x=0xA0[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]。[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]◆调整率[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]M[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]:就是插入分频时钟的个数。[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]M=[[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]小数部分[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]*8][/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt],即:[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]M=[0.67*8]=5[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]。插入形式(尽量均匀分布):[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]0 1 1 0 1 0 1 1  [/SIZE][/LINE-HEIGHT][/FACE][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]([/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]0x6B[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt])[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P][P][LINE-HEIGHT=150%][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UMCTL0=0x6B[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]。[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/P]
      MSP430忠实粉丝!
      在线情况
      3
      • 头像
      • 级别
        • 积分13
        • 经验355
        • 文章13
        • 注册2011-09-22
        [P]4000000/19200=208.333333   208=D0   UBROO=D0 UBR10=00 UMCTL0=10001000 01001000。......式了好多数 就是在串口调试助手上不通 其他波特率也一样  但用ACLK时钟按照波特率数据表给的数据设定就可以接受   请教了UMCTL0[EM14]应该是多少呢[/P]
        微控网感谢您的参与
        在线情况
        4
        • 头像
        • 级别
          • 积分15
          • 经验505
          • 文章16
          • 注册2011-09-08
          [SIZE=4]你的配置没问题,我运行了呀!先检查一下你的时钟配置对了没。如果还不行,始终直接配置为8M,这样配置刚好为[/SIZE][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman][SIZE=4]UBR1x=0x01; UBR0x=0xA0;[/SIZE][/FACE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt][LINE-HEIGHT=150%][LINE-HEIGHT=150%][SIZE=12pt][FACE=Times New Roman]UMCTL0=0x6B[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][FACE=Times New Roman][SIZE=12pt]。[/FACE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/LINE-HEIGHT][/SIZE][/SIZE][/LINE-HEIGHT][LINE-HEIGHT=150%][SIZE=12pt][/SIZE][/LINE-HEIGHT][/FACE]
          MSP430忠实粉丝!
          在线情况
          5
          • 头像
          • 级别
            • 积分13
            • 经验355
            • 文章13
            • 注册2011-09-22
            [P]嗯 我用示波器测测[/P]
            微控网感谢您的参与
            在线情况
            6
            • 头像
            • 级别
              • 积分13
              • 经验159
              • 文章18
              • 注册2012-12-29
              while((IFG1&OFIFG)==OFIFG)这个地方改成这样呢!你的波特率配置没有错误。if(j==0)
                       WDTCTL=0;这些可以不要的。
              微控网感谢您的参与
              Powered by LeadBBS 9.2 .
              Page created in 0.1719 seconds with 5 queries.