TI中文支持网
TI专业的中文技术问题搜集分享网站

430F5529串口通信,这个程序想要实现的功能是什么?我始终感觉没有发送这一模块的程序啊。

/*
*说明:波特率9600,无校验位,数据位8为,停止位1位,采用低频波特率模式
*/
#include <msp430f5529.h>

/*
* main.c
*/
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P3SEL |= BIT3 + BIT4;
UCA0CTL1 = UCSWRST;
UCA0CTL1 = UCSSEL_1;
UCA0BR0 = 3;
UCA0BR1 = 0;
UCA0MCTL = UCBRS_3 + UCBRF_0;
UCA0CTL1 &= ~UCSWRST;
UCA0IE = UCRXIE;
//_EINT();
_bis_SR_register(LPM3_bits+GIE);

//return 0;
}
#pragma vector=USCI_A0_VECTOR
interrupt void USCI_A0_ISR(void)
{
switch(_even_in_range(UCA0IV,4))
{ case 0:
break;
case 2:
while(!(UCA0IFG & UCTXIFG));//等待发送完成
UCA0RXBUF = UCA0TXBUF;//将发送缓冲寄存器中的字符发送到接受缓冲寄存器中, 发给上位机,助手回显
break;
case 4:
break;
default:
break;
}
}

灰小子:

我也看不懂,第一次见把串口发送缓存寄存器的值放到接收缓存寄存器里,这程序是糊弄老师的吧。。。

学习msp430建议参考官网提供的例程

Ling Zhu2:

hui tang2

/* *说明:波特率9600,无校验位,数据位8为,停止位1位,采用低频波特率模式 */#include <msp430f5529.h>

/* * main.c */int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer P3SEL |= BIT3 + BIT4; UCA0CTL1 = UCSWRST; UCA0CTL1 = UCSSEL_1; UCA0BR0 = 3; UCA0BR1 = 0; UCA0MCTL = UCBRS_3 + UCBRF_0; UCA0CTL1 &= ~UCSWRST; UCA0IE = UCRXIE; //_EINT(); _bis_SR_register(LPM3_bits+GIE);

//return 0;}#pragma vector=USCI_A0_VECTORinterrupt void USCI_A0_ISR(void){ switch(_even_in_range(UCA0IV,4)) { case 0: break; case 2: while(!(UCA0IFG & UCTXIFG));//等待发送完成 UCA0TXBUF = UCA0RXBUF;//将发送缓冲寄存器中的字符发送到接受缓冲寄存器中, 发给上位机,助手回显 break; case 4: break; default: break; }}

赞(0)
未经允许不得转载:TI中文支持网 » 430F5529串口通信,这个程序想要实现的功能是什么?我始终感觉没有发送这一模块的程序啊。
分享到: 更多 (0)