我想利用串口调试助手发送数据然后将发送的数据发回给助手,但是不知道怎么回事,好像助手接收不到发回的数据,
这是我的程序,希望各位大神帮忙看下哪有问题:
#include"msp430g2553.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;//
P1DIR |=BIT0;
P1OUT |=BIT0;
BCSCTL1 =CALBC1_1MHZ;
DCOCTL =CALDCO_1MHZ;
P1SEL |=BIT1+BIT2;
UCA0CTL1 |=UCSWRST;
UCA0CTL1 |=UCSSEL_2;
UCA0BR0 =104;
UCA0BR1 =0;
UCA0MCTL |=UCBRS_2+UCBRF_0;
UCA0CTL1 &=~UCSWRST;
IE2 |=UCA0RXIE;
IFG2 |=UCA0RXIFG;
_EINT();
while(1);
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
P1OUT ^=BIT0;
while(!(IFG2&UCA0TXIFG))
{
UCA0TXBUF=UCA0RXBUF;
}
IFG2 &=~UCA0RXIFG;
}
此帖出自
小平头技术问答
- #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
- }
复制代码一周热门 更多>