打印

求助,如何配置msp430f5529串口收发的寄存器

[复制链接]
3005|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蛟龙哥哥|  楼主 | 2015-12-11 20:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        P3SEL = BIT3 + BIT4;          //设置管脚为第二功能
        UCA0CTL1 |= UCSWRST;      //8位数据,1位停止位,奇校验
        UCA0CTL1 |= UCSSEL_1;               //选择UCLK = ACLK
        UCA0BR0 = 0x3;                  //设置波特率9600bit/s
        UCA0BR1 = 0;
        UCA0MCTL1 = UCBRS_3+UCBRF_0;
        UCA0CTL1 &= ~UCSWRST;
                      //这里需要打开模块USART0吗?如果需要的话,是怎么配置呢?
        UCA0IE |= UCRXIE ;                        //打开USART0接收中断

之前使用串口调试助手的时候就不能工作,板子是TI官方的评估板。程序编译没有问题,我在想是不是这一块出现问题了,急求,谢谢!

相关帖子

沙发
蛟龙哥哥|  楼主 | 2015-12-11 20:18 | 只看该作者
#include <msp430f5529.h>

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P3SEL = BIT3+BIT4;
  UCA0CTL1|=UCSWRST;
  UCA0CTL1|=UCSSEL_1;
  UCA0BR0=0X03;
  UCA0BR1=0X00;
  UCA0MCTL=UCBRS_3+UCBRF_0;
  UCA0CTL1&=~UCSWRST;
  UCA0IE|=UCRXIE;
  __bis_SR_register(LPM3_bits + GIE);
}
#pragma vector=USCI_A0_VECTOR
__interrupt void TIMER1_A1_ISR(void)
{
  switch(__even_in_range(UCA0IV,14))
  {
    case 0: break;
    case 2:
      while((!UCA0IFG&UCTXIFG));
      UCA0TXBUF=UCA0RXBUF;
      break;
    case 4:
      break;
    default: break;
  }
}

只是之前的程序

使用特权

评论回复
板凳
dirtwillfly| | 2015-12-11 20:36 | 只看该作者
建议楼主先参考下官方提供的例程

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
蛟龙哥哥 + 1 很给力!
地板
dirtwillfly| | 2015-12-11 20:37 | 只看该作者
mspware在ccs是自带的
如果你用的iar,可以用在线版的:http://dev.ti.com/tirex/#/Package/MSPWare?link=MSPWare

使用特权

评论回复
5
comeon201208| | 2015-12-11 22:58 | 只看该作者
这个最主要的是串口波特率的设置的。

使用特权

评论回复
6
蛟龙哥哥|  楼主 | 2015-12-12 09:08 | 只看该作者
是新人的原因吗

使用特权

评论回复
7
蛟龙哥哥|  楼主 | 2015-12-12 09:13 | 只看该作者
dirtwillfly 发表于 2015-12-11 20:36
建议楼主先参考下官方提供的例程

官方的例程真心觉得好难啊,配置的东西太多了,注释还都是英文,对于我这种菜鸟真是。。。哎

使用特权

评论回复
8
dirtwillfly| | 2015-12-12 09:15 | 只看该作者
蛟龙哥哥 发表于 2015-12-12 09:13
官方的例程真心觉得好难啊,配置的东西太多了,注释还都是英文,对于我这种菜鸟真是。。。哎 ...

:L5529完全可以用官方提供的库函数,用寄存器觉得心累

使用特权

评论回复
9
蛟龙哥哥|  楼主 | 2015-12-12 09:15 | 只看该作者
comeon201208 发表于 2015-12-11 22:58
这个最主要的是串口波特率的设置的。

串口波特率我应该设置对了啊,随便我让它发什么它都没反应,接收也是不行,后来我看了下F149的,有个需要打开USART0模块的指令,是不是我这也需要啊

使用特权

评论回复
10
蛟龙哥哥|  楼主 | 2015-12-12 10:13 | 只看该作者
dirtwillfly 发表于 2015-12-12 09:15
5529完全可以用官方提供的库函数,用寄存器觉得心累

看了一下你发的那个链接,真心赞!不错!灰小子哥

使用特权

评论回复
11
蛟龙哥哥|  楼主 | 2015-12-12 10:38 | 只看该作者
dirtwillfly 发表于 2015-12-12 09:15
5529完全可以用官方提供的库函数,用寄存器觉得心累

我用计时器的时候怎么都进去不了中断啊

使用特权

评论回复
12
蛟龙哥哥|  楼主 | 2015-12-12 10:47 | 只看该作者
dirtwillfly 发表于 2015-12-12 09:15
5529完全可以用官方提供的库函数,用寄存器觉得心累

找到原因了,是调试模式的配置问题,怪我怪我

使用特权

评论回复
13
云本为尘| | 2015-12-12 12:16 | 只看该作者
430系列有很多模式是要配置的。多看英文手册上的寄存器,都能发现这些配置位

使用特权

评论回复
14
dirtwillfly| | 2015-12-12 20:54 | 只看该作者
蛟龙哥哥 发表于 2015-12-12 10:47
找到原因了,是调试模式的配置问题,怪我怪我

解决了就好

使用特权

评论回复
15
earear肉吧| | 2019-7-11 19:47 | 只看该作者
怎么解决的,各种例程下进去都是 串口出来都是
05 92 00 00 04 80 FE ED

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

粉丝