我做了好几天的UART,但是总是搞不出来,就用MSP430G2553裸单片机,是不是只要把J3的跳线帽前两个竖着连起来,P1.1连接TXD,P1.2连接RXD;就可以了,还是要搭建232外围电路才能实现,仅仅靠430G2553裸单片机不能实现。。。。。。就仅仅有一个单片机,没有别的东西了,求大神帮忙指点指点。。。。
我的430代码如下:大神看下有没有什么错误。。。。
/*T-->transmit(发送) R-->receive(接收)*/
/* P1.1-->RXD(接收端口) P1.2-->TXD(发送端口)*/
#include<msp430g2553.h>
#define uchar unsigned char
#define uint unsigned int
void uart_init();
void main()
{
WDTCTL=WDTHOLD+WDTPW; //关闭看门狗
uart_init();
_BIS_SR(LPM0_bits+GIE); //进入低功耗模式,并且等待中断
}
void uart_init()
{
UCA0CTL1|=UCSWRST;
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ; //DCO-->1MHZ
P1SEL|=BIT1+BIT2; //设置P1.1,P1.2,为外围模块
UCA0CTL1|=UCSSEL_2; // SMCLK
UCA0BR0=104; // 1MHz 9600
UCA0BR1=0; // 1MHz 9600
UCA0MCTL|=UCBRS0;
UCA0CTL1&=~UCSWRST; //清除UCSRST,清除所有的复位
IE2|=UCA0RXIE; //开TXD,RXD的中断
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void UART0RXD()
{
while (!(IFG2&UCA0TXIFG)); // USCI_A0中的TXbuffer是否空位,当有数据的时候标志为0
UCA0TXBUF=UCA0RXBUF;
}
此帖出自
小平头技术问答
一周热门 更多>