微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 想实现串口调试助手回显数据,但是无法回显,麻烦各位大牛帮忙看一下程序哪有问题

想实现串口调试助手回显数据,但是无法回显,麻烦各位大牛帮忙看一下程序哪有问题

时间:10-02 整理:3721RD 点击:
#include  "msp430g2553.h"

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
   
  BCSCTL1 = CALBC1_1MHZ;                    // Set DCO
  DCOCTL = CALDCO_1MHZ;
   
  P1SEL = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
  P1SEL2 = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
   
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 = 104;                            // 1MHz 9600
  UCA0BR1 = 0;                              // 1MHz 9600
   
  UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt

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

//  Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  while (!(IFG2&UCA0TXIFG));                // 发送中断标志检测,每次发送后都要检测
                                            //直到发送完成,才可发送下个字节的数据
  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}


没用过430芯片,不过看你的程序,好像没有对接收数据的判断,即使你的打算是接收到数据再发送返回,那也应该要判断有没有接收到数据吧。

我的是当接收到数据后,通过产生的接受中断来发送数据的

那可以先调试发送数据部分,随意发送到串口调试助手,看是调试助手否能正确接收到。可以测试波特率等参数。
等发送正确了,如果还不能回传,那就是接收的问题了

我用官方的例程跑 ,能把程序烧进去,但是串口调试助手还是不能回显

串口通讯有多个参数,如波特率,数据位,有无校验等等,必须设置正确,串口调试助手最好设置成十六进制发送和接收

参数都是按照串口调试助手上的来的,结果还是不行

好像单独发数据给串口调试助手,助手也收不到任何数据

还是先测试单片机发送数据到串口调试助手,这样可以测试参数是否正确,包括程序里的波特率设置等

那就要查程序,参数设置,还有硬件的连接线,以及电路接线等是否有错误了,最好能上电路图和连线图

程序我后来使用的ti官方例程,我为了防止上电后的默认参数和串口调试助手不一致,我又在程序中重新设置了一下参数,保证波特率9600,无奇偶校验位,一位停止位,8位数据位。程序也能正常的烧进去,但就是不能调试。
我是通过usb直接连接的板子

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top