[技术求助] 单步调试执行串口发送程序,但是电脑上接收不到

[复制链接]
308|33
 楼主 | 2018-6-6 17:04 | 显示全部楼层 ||阅读模式
单步调试执行串口发送程序,但是电脑上接收不到,波特率设置的也应该是正确的,但不知道哪里出了问题
| 2018-6-6 17:08 | 显示全部楼层

看看你怎么设置的
 楼主 | 2018-6-6 17:11 | 显示全部楼层

#include"msp430g2553.h"

unsigned char data=22;

void Putchar0(unsigned char Chr)
{
     UCA0TXBUF = Chr;
     while(!(IFG2 & UCA0TXIFG));
     IFG2&=~UCA0TXIFG;
}

void delay(unsigned char x)
{
    unsigned char a,b;
    for(a=x;a>0;a--)
      for(b=100;b>0;b--);
}

void main(void)
{
    WDTCTL =WDTHOLD+WDTPW;
    BCSCTL1 = CALBC1_1MHZ;
    DCOCTL = CALDCO_1MHZ;//上面两句将内部DCO校准至8MHz

    P1SEL |= BIT1 + BIT2;                             // P1.2 = USCI_A0 TXD
    P1SEL2 = BIT1 + BIT2;

    UCA0CTL1 |= UCSSEL_2;                     // SMCLK

    //UCA0BR0 = 0x34;                              // 8MHz 9600
    UCA0BR0 = 104;
    UCA0BR1 = 0;
    //UCBRS0 = 1;               // Modln UCBRSx=1, over sampling
    UCA0MCTL = UCBRS0;
    UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
    IE2 |=UCA0RXIE;
    _EINT();
    while(1)
    {
        Putchar0(data);
        delay(30);
        Putchar0('a');
        delay(30);
    }
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
    while (!(IFG2&UCA0TXIFG));               // USCI_A0 TX buffer ready?
    data = UCA0RXBUF;
    IFG2&=~UCA0RXIFG;
}
| 2018-6-6 17:13 | 显示全部楼层

不能单步调试,这个是按照一定波特率发动的。
| 2018-6-6 17:18 | 显示全部楼层

你可以设置断点的。
| 2018-6-6 17:21 | 显示全部楼层

在发送数据时,是不是应该先等 TX buffer准备好了,再往UCA0TXBUF写数据:
while(!(IFG2 & UCA0TXIFG));
UCA0TXBUF = Chr;
| 2018-6-6 17:25 | 显示全部楼层
请问这两句是怎么将内部DCO校准至8MHz的
| 2018-6-6 17:27 | 显示全部楼层

这个就先检查下发送的数据又发送出来的不。。。
| 2018-6-6 17:30 | 显示全部楼层

楼主看看,是否修改用于升级的那个项目的XCL文件!
| 2018-6-6 17:34 | 显示全部楼层

不要一位的查找是不是软件的问题
| 2018-6-6 17:36 | 显示全部楼层
你用的是8M DCO,可以配置的是1MHZ。请核对。
| 2018-6-6 17:39 | 显示全部楼层
看下硬件设计的吧,然后再检查下程序设计的。
 楼主 | 2018-6-6 17:47 | 显示全部楼层

结贴了,多谢大家讨论这么多哈,呵呵
 楼主 | 2018-6-7 11:33 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家,结贴了哈
| 2018-6-7 12:03 | 显示全部楼层
wyjie 发表于 2018-6-6 17:11
#include"msp430g2553.h"

unsigned char data=22;

检查是否是硬件的问题。
| 2018-6-7 12:03 | 显示全部楼层
检查设置的波特率与PC接收的是否一致
| 2018-6-7 12:03 | 显示全部楼层
交叉一下收/发数据线次序
| 2018-6-7 12:04 | 显示全部楼层
怀疑一下用的串口助手
| 2018-6-7 12:04 | 显示全部楼层
直接在PC端用线短接2、3脚
| 2018-6-7 12:04 | 显示全部楼层
用示波器可以看到有波形
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

分享 快速回复 返回顶部 返回列表