因为需要我想使用PC传数据给串口0,串口0再给串口1,由串口1发出给外设。因为实现不了功能所以我就弄了下面这个测试程序,单独测试串口0与串口1。发现只有串口0可以把PC发来数据传回PC,而串口1却不能。所以很疑惑,我最近两天才接触MSP430,麻烦大侠能告诉我原因。
#include <msp430x14x.h>
void UART0_Init(void);
void UART1_Init(void);
void main(void)
{WDTCTL = WDTPW + WDTHOLD;UART0_Init();UART1_Init();while(1);
}
void UART0_Init(void)
{P3SEL |= BIT4;P3SEL |= BIT5;P3DIR |= BIT4;ME1 |= UTXE0 + URXE0;UCTL0 |= CHAR;UTCTL0 |= SSEL0;UBR00 = 0x03;UBR10 = 0x00;UMCTL0 = 0x4A;UCTL0 &= ~SWRST;IE1 |= URXIE0;_BIS_SR(LPM3_bits + GIE);
}
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{_BIS_SR(GIE);while (!(IFG1 & UTXIFG0));TXBUF0 = RXBUF0;
}
void UART1_Init(void)
{P3SEL |= BIT6;P3SEL |= BIT7;P3DIR |= BIT6;ME2 |= UTXE1 + URXE1;UCTL1 |= CHAR;UTCTL1 |= SSEL0;UBR01 = 0x03;UBR11 = 0x00;UMCTL1 = 0x4A;UCTL1 &= ~SWRST;IE2 |= URXIE1;_BIS_SR(LPM3_bits + GIE);
}
#pragma vector=USART1RX_VECTOR
__interrupt void usart1_rx (void)
{while (!(IFG2 & UTXIFG1));TXBUF1 = RXBUF1;
}
kela jin:
单独测试UART0与UART1是没问题的,使用的是IAR FOR MSP430 V5.30
,
kela jin:
问题解决了,我初始化uart0时已经进入低功耗模式了,又怎么会初始化uart1呢?
困扰了好久,感谢Q群里面的大头兵,问题顺利解决
,
yuechao gao:
你好,我的项目也和你一样 通过PC发给串口0接收,再由串口1发送给外设,你可以把你的程序让我参考下吗?发我邮箱158763924@qq.com 谢谢
,
user5331863:
您好,我最近也在研究msp430,对您的成果很有兴趣,方便把程序发给我吗?qq920711511,感谢感谢。
,
user6477655:
您好,我最近也在研究msp430,对您的成果很有兴趣,方便把程序发给我吗?2837669923@qq.com,感谢感谢
TI中文支持网




