[求助] msp40G2553串口通信问题

曾忆往昔   2012-7-26 21:24 楼主
在调试串口通信的时候,发现,有定时器模拟的可通信,。但是换作使用内置UART通信的时候发现不能通信,用的是TI的官方历程,在调试时,发现无法进入,接收中断,同样用的TI的官方历程,,在检查问题的时候,看过l其他类型的芯片的UART MODE,发现在多设置了 ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD
传说中的串口模块接收使能寄存器,但是在对照G2553的使用指南时并没有这个寄存器的描述,在相应的头文件中并没有定义。
开始时没有接转串口的板子后来   ,于是,另外使用usb 转串口的模块,直接连接芯片的RD TD,引脚。好奇怪的是,仍然进不去串口接收中断,只是PC发什么数据,返回什么数据显示,就像是,RD 与TD直接连载一起。顺便说一句,不连接芯片也是这样的。

思来想去,觉得TI官方的历程应该没有问题,如果用问题,应该是板字的问题,或者是我连接的问题,或者就是芯片的问题,用的V1.5 版本板子,看过资料,已经修正过。不知在使用的时候,有什么地方还需注意,
不知哪位用过G2553 内置串口通信,望不吝赐教,悉听指导,感激之至。

QQ截图20120726211705.png
下为历程,官方
//******************************************************************************
//   MSP430G2xx3 Demo - USCI_A0, 9600 UART Echo ISR, DCO SMCLK
//
//   Description: Echo a received character, RX ISR used. Normal mode is LPM0.
//   USCI_A0 RX interrupt triggers TX Echo.
//   Baud rate divider with 1MHz = 1MHz/9600 = ~104.2
//   ACLK = n/a, MCLK = SMCLK = CALxxx_1MHZ = 1MHz
//
//                MSP430G2xx3
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |     P1.2/UCA0TXD|------------>
//            |                 | 9600 - 8N1
//            |     P1.1/UCA0RXD|<------------
//
//   D. Dang
//   Texas Instruments Inc.
//   February 2011
//   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//******************************************************************************
#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));                // USCI_A0 TX buffer ready?
  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}


补充一句,直接用班上的设置也不可以

[ 本帖最后由 曾忆往昔 于 2012-7-26 21:59 编辑 ]

回复评论 (9)

漂过····也是遇到问题了百度来这的····
点赞  2012-7-28 17:21
成功通信需要把J4那里的RX和TX的跳线帽竖着放才行
点赞  2012-7-28 20:22

回复 板凳 zw357234798 的帖子

你是说保证跳线帽连通吗?
点赞  2012-8-1 10:22
跳线帽的RX和TX地方的跳线帽需要竖着放,TX->TX' ,RX->RX';改为:TX->RX;TX'->RX'
点赞  2012-8-1 16:56
我想问下先生,这个串口通信还要外接什么东西吗,谢谢
点赞  2012-8-1 18:55
额,这个板上通过仿真器的串口我也没成功过,不知道什么原因,但是从P1.1和P1.2接出来用还是可以的
点赞  2012-8-2 10:05

回复 5楼 zw357234798 的帖子

确实是这个样子的,也是这么处理的,就可以用了
点赞  2012-8-3 13:06

回复 8楼 曾忆往昔 的帖子

请问,你这个问题最后是怎么解决的啊?我现在也遇到这个问题,一直调不通,好郁闷啊!
点赞  2012-8-13 12:33
你可能是RXD和TXD接反了
点赞  2014-8-12 19:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复