MSP430的串口通讯问题

CCCMiyagi 2018-08-02 03:02:38
用的是MSP430G2553,我用串口调试助手试了好久,一直接受不到数据,网上的方法也不行,不知道哪里出了问题,帮忙看一下。程序功能是发送“nihao”


#include "msp430G2553.h"
#include "stdio.h"
unsigned char a[8];
void Init_uart0()
{
UCA0CTL1|=UCSWRST; //UCA0软件复位
//UCA0CTL0&=~UC7BIT;//字符长度为8
UCA0CTL1|=UCSSEL_2;//选择系统时钟:SMCLK
UCA0BR0=0x6D; //波特率为9600
UCA0BR1=0;
UCA0MCTL=0;//UCA0MCTL=UCBRS0;
IE2=UCA0RXIE+UCA0TXIE;//开接收使能
UCA0CTL1&=~UCSWRST;
P1SEL|=BIT1+BIT2; //将P1.1 P1.2设为第二功能
P1SEL2|=BIT1+BIT2;
}
void Uart0Sends(char *s)
{
while(*s!='\0')
{
UCA0TXBUF=*s;
while((IFG2&UCA0TXIFG)==0); //查询发送是否结束
IFG2&=~UCA0TXIFG; //清除发送一标志位
s++;
}
}
void main( )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
Init_uart0();
_EINT();
while(1)
{
Uart0Sends("ni hao");
__delay_cycles (1048576);
}
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void usart0_rx(void)
{
while((IFG2&UCA0RXIFG)==0);
//a=RXBUF0;
//i++;
a[0]=UCA0RXBUF;
}
这是代码,编译那些都没问题。
跳帽是这样的。助手的波特率都设置好的,但是就是不出结果。
...全文
1015 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是Trustintruth 2018-08-12
  • 打赏
  • 举报
回复
串口连接处有没有共底?
yishumei 2018-08-08
  • 打赏
  • 举报
回复
建议查一下终端电阻
dceacho 2018-08-04
  • 打赏
  • 举报
回复
用官方标准的例程跑跑看
CCCMiyagi 2018-08-04
  • 打赏
  • 举报
回复
求人来解答啊。。
CCCMiyagi 2018-08-04
  • 打赏
  • 举报
回复
引用 2 楼 wangfan027 的回复:
用官方标准的例程跑跑看

#include "msp430g2553.h"

void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
P1OUT &=~ (BIT1 + BIT2);
P1SEL = BIT1 + BIT2;
UCA0CTL1|= UCSSEL_1;
UCA0BR0 = 0x03;
UCA0BR1 = 0x00;
UCA0MCTL = UCBRS1 + UCBRS0;
UCA0CTL1 &= ~UCSWRST;
IE2 |= UCA0RXIE;
__bis_SR_register(LPM3_bits + GIE);
}
#pragma vector = USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
while(!(IFG2&UCA0TXIFG));
UCA0TXBUF = UCA0RXBUF;
}

这是我在书上找的例子,每收到一个字节的数据,再将其转发出去。
但是还是不行。

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧