打印

f4152串口通信问题

[复制链接]
487|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Rangar|  楼主 | 2016-5-26 20:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用f4152进行串口调试,观察寄存器可以看到UCA0TXBUF有数据,但串口调试助手一直没有显示,用的RS485串口,以下是程序,求高手指教#include <msp430x41x2.h>
const char string1[] = { "Hello World\r\n" };
unsigned int j = 0;

void main(void)
{
  volatile unsigned int i;

  WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT
  UCA0CTL1 |= UCSWRST;
  UCA0CTL0 = 0;
  FLL_CTL0 |= XCAP11PF;                     // Configure load caps

  do
  {
    IFG1 &= ~OFIFG;                         // Clear OSCFault flag
    for (i = 0x47FF; i > 0; i--);           // Time for flag to set
  }
  while ((IFG1 & OFIFG));                   // OSCFault flag still set?

  P6SEL |= BIT5+BIT6;                       // P6.5,6 = USCI_A0 RXD/TXD

  P6DIR &=~BIT5;
  P6DIR |= BIT6;

  UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
  UCA0BR0 = 0x03;                           // 32k/9600 - 3.41
  UCA0BR1 = 0x00;                           //
  UCA0MCTL = UCBRS1 + UCBRS0;                          // Modulation
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0TXIE;                          // Enable USCI_A0 RX interrupt
//  ME2 |= UCA0RXE;
  while(1)
{
   while(!(IFG2&UCA0TXIFG));
   UCA0TXBUF = 'A';
   for (i = 0x500; i > 0; i--);
}

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

#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)
{
  UCA0TXBUF = string1[j++];                 // TX next character

  if (j == sizeof string1 - 1)              // TX over?
  {
     IE2 &= ~UCA0TXIE;                       // Disable USCI_A0 TX interrupt
     IE2 |= UCA0RXIE;
  }  
}

#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  if (UCA0RXBUF == 'u')                     // 'u' received?
  {
    j = 0;
    IE2 |= UCA0TXIE;                        // Enable USCI_A0 TX interrupt
    UCA0TXBUF = string1[j++];
  }
}

因为之前调试一直无反应,所以先把中断关了,只看发送是否可以发出,但结果却一直是观察寄存器可以看到UCA0TXBUF有数据,但串口调试助手没有显示

相关帖子

沙发
Ryze| | 2016-5-26 21:01 | 只看该作者
检查串口助手设置参数,波特率什么的和你的单片机寄存器是否相符
硬件电路检查485芯片电压时候正常,再次根据PDF对比你的原理图以及实物板子核实走线是否有误

使用特权

评论回复
板凳
豆腐块| | 2016-5-26 21:29 | 只看该作者
RS485模块的发送/接收模式设置有没有问题

使用特权

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

本版积分规则

154

主题

763

帖子

0

粉丝