打印

MSP430F5529调试串口

[复制链接]
4570|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AI_书生|  楼主 | 2015-7-28 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面的程序,我下载到实验板子上面,可是在串口助手里面调不出来啊,求大侠解救~

#include <msp430.h>

int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P3SEL = BIT3+BIT4;                        // P3.4,5 = USCI_A0 TXD/RXD
  UCA0CTL1 |= UCSWRST;                      // **Put state machine in reset**
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK  选择时钟源
  UCA0BR0 = 6;                              // 1MHz 9600 (see User's Guide)
  UCA0BR1 = 0;                              // 1MHz 9600
  UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;   // Modln UCBRSx=0, UCBRFx=0,
                                            // over sampling
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt

  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
  __no_operation();                         // For debugger
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
  switch(__even_in_range(UCA0IV,4))
  {
  case 0:break;                             // Vector 0 - no interrupt
  case 2:                                   // Vector 2 - RXIFG
    while (!(UCA0IFG&UCTXIFG));             // USCI_A0 TX buffer ready?
    UCA0TXBUF = UCA0RXBUF;                  // TX -> RXed character
    break;
  case 4:break;                             // Vector 4 - TXIFG
  default: break;
  }
}

相关帖子

沙发
AI_书生|  楼主 | 2015-7-28 11:21 | 只看该作者
自己顶一个,我有用其他程序试了一下,发现无论哪个程序,用串口调试时,接收到的都是05 92 00 00 04 80 FE ED,这是为什么?

使用特权

评论回复
板凳
AI_书生|  楼主 | 2015-7-28 11:37 | 只看该作者
难道是我用的串口助手不对吗?

使用特权

评论回复
地板
zhangbo1985| | 2015-7-28 12:51 | 只看该作者
那你这个单片机的主频多大呢?

使用特权

评论回复
5
zhangbo1985| | 2015-7-28 12:52 | 只看该作者
注意下主频的频率的,不然你配置的是9600的波特率,实际出来的就可能不是的了

使用特权

评论回复
6
AI_书生|  楼主 | 2015-7-28 13:05 | 只看该作者
型号是MSP430F5529

使用特权

评论回复
7
AI_书生|  楼主 | 2015-7-28 13:07 | 只看该作者
zhangbo1985 发表于 2015-7-28 12:52
注意下主频的频率的,不然你配置的是9600的波特率,实际出来的就可能不是的了 ...

在哪里找单片机主频频率,有资料吗?给我发一份吧,谢谢了,

使用特权

评论回复
8
军训的茶杯| | 2015-7-28 13:10 | 只看该作者
主频一般在系统初始化时候做的。还有,先用示波器看看,收到的波形对不对。

使用特权

评论回复
9
专注于嵌入式| | 2015-7-28 13:14 | 只看该作者
如果你选择的是外部晶振,那你看看外部晶振是多少

使用特权

评论回复
10
AI_书生|  楼主 | 2015-7-28 13:29 | 只看该作者
应该不是这个问题,这是TI给的例程,不能有错吧!
我的片子是430F5529,选择的例程是:

MSP430F55xx_uscia0_uart_01        USCI_A0, 115200 UART Echo ISR, DCO SMCLK
MSP430F55xx_uscia0_uart_02        USCI_A0, Ultra-Low Pwr UART 2400 Echo ISR, 32kHz ACLK
MSP430F55xx_uscia0_uart_03        USCI_A0, Ultra-Low Pwr UART 9600 Echo ISR, 32kHz ACLK
MSP430F55xx_uscia0_uart_04        USCI_A0, 9600 UART, SMCLK, LPM0, Echo with over-sampling

搞笑的是我把控制控制LED的程序下进去,串口调试助手上还是返回那一串字符,还有,这个例程都进不去中断,是板子的问题还是程序的问题,各位大侠,再分析分析。

使用特权

评论回复
11
AI_书生|  楼主 | 2015-7-28 13:34 | 只看该作者
专注于嵌入式 发表于 2015-7-28 13:14
如果你选择的是外部晶振,那你看看外部晶振是多少

程序仿真的时候,走到 __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
这一步的时候就不走了,卡在这里,这是为什么 呢?

使用特权

评论回复
12
dirtwillfly| | 2015-7-28 20:22 | 只看该作者
AI_书生 发表于 2015-7-28 13:34
程序仿真的时候,走到 __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
...

在这里进入了低功耗状态

使用特权

评论回复
13
dirtwillfly| | 2015-7-28 20:23 | 只看该作者
建议先检查你msp430的串口配置和串口助手里设置的是否一致

使用特权

评论回复
14
冰河w| | 2015-7-28 23:39 | 只看该作者
估计是串口助手里设置的不对

使用特权

评论回复
15
FireRiver9| | 2015-7-29 00:00 | 只看该作者
我把控制控制LED的程序下进去,串口调试助手上还是返回那一串字符

这就诡异了,换个串口助手试试

使用特权

评论回复
16
冰河w| | 2015-7-30 23:04 | 只看该作者
主频率是在时钟初始化部分实现的

使用特权

评论回复
17
jshpy| | 2015-7-31 09:49 | 只看该作者
本帖最后由 jshpy 于 2015-7-31 09:56 编辑

默认上电后UCS不做任何设置的情况下:
ACLK = REFO = 32.768kHz, MCLK = SMCLK = (Default DCO)/2 = (2MHz/2) ~= 1MHz

楼主选用 SMCLK  1MHz  建议波特率做如下设置
UCA0BR1=0x00H
UCA0BR0=0x68H
UCA0MCTL =0x40H

推荐初始化步骤

1.置位 UCSWRST
2 设置 UCSWRST=1,初始化所有的 USCI 寄存器。
3.配置端口。
4.软件清除 UCSWRST。
5.通过 UCRXIE 和/或 UCTXIE 使能中断(可选)


使用特权

评论回复
18
BME超导体| | 2017-11-8 16:58 | 只看该作者
楼主,我和你遇到了同样的问题,十分费解。不论发什么数都返回那一串

使用特权

评论回复
19
lxivar| | 2018-8-25 13:27 | 只看该作者
BME超导体 发表于 2017-11-8 16:58
楼主,我和你遇到了同样的问题,十分费解。不论发什么数都返回那一串

看看电路图,默认连接的是UART1的TXD和RXD。。。

使用特权

评论回复
20
kkzz| | 2018-9-1 22:47 | 只看该作者
一般来说应该不成问题的

使用特权

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

本版积分规则

1

主题

8

帖子

0

粉丝