MSP430G2553做UART怎么搞??

2019-03-24 09:10发布

我做了好几天的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;   
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
风的世界
1楼-- · 2019-03-25 07:28
 精彩回答 2  元偷偷看……
SF很厉害
2楼-- · 2019-03-25 10:24
按照你说的,我明白了HW和SW,但是还是没有成功,难道是我代码的问题,还得研究研究。。。。
DavidZH
3楼-- · 2019-03-25 14:58
显示串口被占用,已经竖着插了
yafei900914
4楼-- · 2019-03-25 15:46
 精彩回答 2  元偷偷看……
旺仔棒棒糖
5楼-- · 2019-03-25 19:47
加一句 P1SEL2|=BIT1+BIT2; 试试
纠结者
6楼-- · 2019-03-25 22:46
是不是你的波特率设置错了啊,1M Hz/9600=104(十进制),是不是要把它转换为十六进制啊,你把他改成68(十六进制)试一下。还有,如果改成12M Hz的似乎可以整除,就不要那句调节余数的代码了

一周热门 更多>

相关问题

    相关文章