打印
[MCU]

串口助手里面调不出来

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

#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;
  }
}

使用特权

评论回复

相关帖子

沙发
renyaq| | 2020-12-8 22:47 | 只看该作者
用其他程序试下

使用特权

评论回复
板凳
chenjunt|  楼主 | 2020-12-8 22:52 | 只看该作者
试了,发现无论哪个程序,用串口调试时,接收到的都是05 92 00 00 04 80 FE ED

使用特权

评论回复
地板
ousj| | 2020-12-8 23:00 | 只看该作者
难道是我用的串口助手不对吗?

使用特权

评论回复
5
zyf部长| | 2020-12-8 23:05 | 只看该作者
那你这个单片机的主频多大呢?

使用特权

评论回复
6
supernan| | 2020-12-8 23:09 | 只看该作者
注意下主频的频率的,不然你配置的是9600的波特率,实际出来的就可能不是的了

使用特权

评论回复
7
chenjunt|  楼主 | 2020-12-8 23:12 | 只看该作者
型号是MSP430F5529

使用特权

评论回复
8
chenjunt|  楼主 | 2020-12-8 23:20 | 只看该作者
在哪里找单片机主频频率,有资料吗?给我发一份吧,谢谢了,

使用特权

评论回复
9
tian111| | 2020-12-8 23:23 | 只看该作者

主频一般在系统初始化时候做的

使用特权

评论回复
10
zwll| | 2020-12-8 23:27 | 只看该作者
先用示波器看看,收到的波形对不对。

使用特权

评论回复
11
xxrs| | 2020-12-8 23:30 | 只看该作者
如果你选择的是外部晶振,那你看看外部晶振是多少

使用特权

评论回复
12
chenjunt|  楼主 | 2020-12-8 23:34 | 只看该作者
应该不是这个问题,这是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

使用特权

评论回复
13
chenjunt|  楼主 | 2020-12-8 23:40 | 只看该作者
搞笑的是我把控制控制LED的程序下进去,串口调试助手上还是返回那一串字符

使用特权

评论回复
14
zhanglli| | 2020-12-8 23:44 | 只看该作者
这个例程都进不去中断?

使用特权

评论回复
15
happy_10| | 2020-12-8 23:48 | 只看该作者
是板子的问题还是程序的问题

使用特权

评论回复
16
chenjunt|  楼主 | 2020-12-8 23:52 | 只看该作者
程序仿真的时候,走到 __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
这一步的时候就不走了,卡在这里,这是为什么 呢?

使用特权

评论回复
17
stly| | 2020-12-8 23:55 | 只看该作者
在这里进入了低功耗状态

使用特权

评论回复
18
yangxiaor520| | 2020-12-9 08:52 | 只看该作者
应该还是配置哪里有问题

使用特权

评论回复
19
stly| | 2020-12-9 17:44 | 只看该作者
建议先检查你msp430的串口配置和串口助手里设置的是否一致

使用特权

评论回复
20
supernan| | 2020-12-9 17:48 | 只看该作者
估计是串口助手里设置的不对

使用特权

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

本版积分规则

718

主题

7868

帖子

5

粉丝