共2条
1/1 1 跳转至页
430F149 【求助】430F149中的串口1问题

问
源程序:
//******************************************************************************
// MSP-FET430P140 Demo - USART1 UART 2400 Ultra-low Power Echo ISR, 32kHz ACLK
//
// Description; Echo a received character, RX ISR used. In the Mainloop UART1
// is made ready to receive one character with interrupt active. The Mainloop
// waits in LPM3. The UART1 ISR forces the Mainloop to exit LPM3 after
// receiving one character which echo's back the received character.
// ACLK = UCLK1 = LFXT1 = 32768, MCLK = SMCLK = DCO ~ 800k
// Baud rate divider with 32768hz XTAL 2400 = 32768Hz/2400 = 13.65 (000Dh)
// //*An external watch crystal is required on XIN XOUT for ACLK*//
//
// MSP430F149
// -----------------
// /|\| XIN|-
// | | | 32kHz
// --|RST XOUT|-
// | |
// | P3.6|----------->
// | | 2400 - 8N1
// | P3.7|<-----------
//
//
// M. Buccini
// Texas Instruments, Inc
// February 2002
// Built with IAR Embedded Workbench Version: 1.25A
//******************************************************************************
#include <MSP430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
UCTL1&=~SWRST;
UCTL1 = CHAR; // 8-bit character
UTCTL1 = SSEL0; // UCLK = ACLK
UBR01 = 0x0D; // 32k/2400 - 13.65
UBR11 = 0x00;
UMCTL1 = 0x6B; // Modulation
ME2 |= UTXE1 + URXE1; // Enable USART1 TXD/RXD
IE2 |= URXIE1;
IE2 |=UTXIE1; // Enable USART1 RX interrupt
P3SEL |= 0xC0; // P3.6,7 = USART1 option select
P3DIR |= 0x40; // P3.6 = output direction
_EINT(); // Enable interrupts
// Mainloop
for (;;)
{
_BIS_SR(LPM3_bits); // Enter LPM3
_NOP(); // Required only for C-spy
}
}
// UART1 RX ISR will for exit from LPM3 in Mainloop
interrupt[UART1RX_VECTOR] void usart1_rx (void)
{
_BIC_SR_IRQ(LPM3_bits);
while ((IFG2 & UTXIFG1) == 0); // USART1 TX buffer ready?
TXBUF1 = RXBUF1; // RXBUF1 to TXBUF1
}
程序运行到 while ((IFG2 & UTXIFG1) == 0); // USART1 TX buffer ready?
就执行不下去了!不知道为什么?请大家指点!谢谢!
report中显示为:
FETCH access at address 0xFF4A (Memory) - foreign
Break at FF50
FETCH access at address 0xFF50 (Memory) - foreign
Break at .fet140_uart11_02400.c\61 (usart1_rx) 答 1: 不小心写错一条语句!已经解决!呵呵
//******************************************************************************
// MSP-FET430P140 Demo - USART1 UART 2400 Ultra-low Power Echo ISR, 32kHz ACLK
//
// Description; Echo a received character, RX ISR used. In the Mainloop UART1
// is made ready to receive one character with interrupt active. The Mainloop
// waits in LPM3. The UART1 ISR forces the Mainloop to exit LPM3 after
// receiving one character which echo's back the received character.
// ACLK = UCLK1 = LFXT1 = 32768, MCLK = SMCLK = DCO ~ 800k
// Baud rate divider with 32768hz XTAL 2400 = 32768Hz/2400 = 13.65 (000Dh)
// //*An external watch crystal is required on XIN XOUT for ACLK*//
//
// MSP430F149
// -----------------
// /|\| XIN|-
// | | | 32kHz
// --|RST XOUT|-
// | |
// | P3.6|----------->
// | | 2400 - 8N1
// | P3.7|<-----------
//
//
// M. Buccini
// Texas Instruments, Inc
// February 2002
// Built with IAR Embedded Workbench Version: 1.25A
//******************************************************************************
#include <MSP430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
UCTL1&=~SWRST;
UCTL1 = CHAR; // 8-bit character
UTCTL1 = SSEL0; // UCLK = ACLK
UBR01 = 0x0D; // 32k/2400 - 13.65
UBR11 = 0x00;
UMCTL1 = 0x6B; // Modulation
ME2 |= UTXE1 + URXE1; // Enable USART1 TXD/RXD
IE2 |= URXIE1;
IE2 |=UTXIE1; // Enable USART1 RX interrupt
P3SEL |= 0xC0; // P3.6,7 = USART1 option select
P3DIR |= 0x40; // P3.6 = output direction
_EINT(); // Enable interrupts
// Mainloop
for (;;)
{
_BIS_SR(LPM3_bits); // Enter LPM3
_NOP(); // Required only for C-spy
}
}
// UART1 RX ISR will for exit from LPM3 in Mainloop
interrupt[UART1RX_VECTOR] void usart1_rx (void)
{
_BIC_SR_IRQ(LPM3_bits);
while ((IFG2 & UTXIFG1) == 0); // USART1 TX buffer ready?
TXBUF1 = RXBUF1; // RXBUF1 to TXBUF1
}
程序运行到 while ((IFG2 & UTXIFG1) == 0); // USART1 TX buffer ready?
就执行不下去了!不知道为什么?请大家指点!谢谢!
report中显示为:
FETCH access at address 0xFF4A (Memory) - foreign
Break at FF50
FETCH access at address 0xFF50 (Memory) - foreign
Break at .fet140_uart11_02400.c\61 (usart1_rx) 答 1: 不小心写错一条语句!已经解决!呵呵
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
汽车电子中巡航控制系统的使用被打赏10分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K146】S32DS RTD 驱动环境搭建被打赏12分 | |
【分享开发笔记,赚取电动螺丝刀】【IAR】libc标注库time相关库函数使用被打赏23分 | |
LP‑MSPM0L1306开发版试用结果被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【LP-MSPM0L1306】适配 RT-Thread Nano被打赏23分 |