查看: 1937|回复: 1

用MSP430的串口发数据好慢是怎么回事

[复制链接]
  • TA的每日心情
    奋斗
    2018-12-28 17:10
  • 签到天数: 1618 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2013-5-1 00:28:07 | 显示全部楼层 |阅读模式
    分享到:
    我用两块MSP430F168做全双工异步通信
    用ACLK波特率设置成了19200还是非常慢,这边发了过了十几秒那边才显示,
    用8M的TX2,波特率设置成115200,传的是很快,目测同步但数据都是错的,,用示波器看了TX2发现时钟不稳定,
    按说19200的波特率已经非常快了,但为什么传的这么慢呢
    帮我看看是什么问题?

    程序:

    #include "msp430x16x.h"
    #include "KeyValue.h"   //矩阵键盘头文件
    #include "CLK_config.h" //时钟配置头文件

    void IO_init()
    {
      P3SEL|=0x30;  //用的TX0和RX0
      P5DIR|=0xff;  //用P5显示另一块单片机传来的键值
    }

    int main( void )
    {
      // Stop watchdog timer to prevent time out reset
      WDTCTL = WDTPW + WDTHOLD;
      XT2_CLK();              //使用XT2高速晶体振荡器
      ME1|=UTXE0+URXE0;
      UCTL0|=CHAR;
      UTCTL0|=SSEL0;        //用ACLK
      UBR00=0x01;           //波特率19200
      UBR01=0x00;
      UMCTL0=0xdb;
      UCTL0&=~SWRST;
      IE1|=URXIE0;

      _EINT();
      keyIO_init();         //键盘IO初始化
      IO_init();
      while(1)
      {
        keyvalue();         //运行键盘扫描
        if(KeyFlag==1)      //如果有按键按下
        {
          KeyFlag=0;
          TXBUF0=key;       //把键值发送出去
        }
      }
    }

    #pragma vector=UART0RX_VECTOR
    __interrupt void usart0_rx()
    {
      while(!(IFG1&UTXIFG0));
      P5OUT=RXBUF0;         //接收的键值在另一块单片机的P5上显示
    }                           
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-12-28 17:10
  • 签到天数: 1618 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2013-5-2 10:29:58 | 显示全部楼层
    五一大家都不上论坛了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-6-16 23:56 , Processed in 0.108874 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.