4395|13

13

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430F5438A串口测试,都出来的都是乱码,而且PC接收到的数据比发送的少字节 [复制链接]

 
小弟初来乍到,望各位大神多多指点。先谢谢各位

R6[]6T4)S7Z]P8AT6%WR959.jpg (127.69 KB, 下载次数: 0)

TI官方测试例程

TI官方测试例程

WGG_YERBSA@@$BN621WIV96.jpg (44.53 KB, 下载次数: 0)

串口线端口波特率设置

串口线端口波特率设置

$((DJKT8Y8565~$0@G34_DI.jpg (74.94 KB, 下载次数: 0)

串口调试出来是乱码

串口调试出来是乱码

最新回复

楼主如何解决的  详情 回复 发表于 2018-4-9 21:58
 
点赞 关注

回复
举报

13

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
我新到的一个MSP430F5438A最小系统开发板,用测试例程测试串口时波特率115200和9600都试过了,串口调试出来的数据都是乱码。是板子的原因还是我调试错误?
 
 

回复

19

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
波特率不匹配啊,一个9600,一个115200

点评

那是一开始用的多115200,因为对于32768Hz来说有点太大,后来改成9600了,调试时候都是匹配的  详情 回复 发表于 2016-8-15 10:42
 
 
 

回复

19

帖子

1

TA的资源

一粒金砂(中级)

4
 
把串口助手波特率改成115200试试

点评

调试时候都是匹配的,那是一开始程序用的是115200波特率,因为对于32768Hz来说有点太大,后来改成9600了  详情 回复 发表于 2016-8-15 10:43
 
 
 

回复

6040

帖子

195

TA的资源

版主

5
 
也不知道你发送的数据是什么,如果发送的不是英文字母和符号,显示出乱码也是正常的。

点评

你好,我用的是官方例程中的msp430x54xA_uscia0_uart_03, #include int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P3SEL = 0x30; // P3.4,5 =  详情 回复 发表于 2016-8-15 11:01
发送的就是abcdefg  详情 回复 发表于 2016-8-15 10:40
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

6
 
lcofjp 发表于 2016-8-15 10:30
也不知道你发送的数据是什么,如果发送的不是英文字母和符号,显示出乱码也是正常的。

发送的就是abcdefg
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

7
 
15369350004 发表于 2016-8-14 11:47
波特率不匹配啊,一个9600,一个115200

那是一开始用的多115200,因为对于32768Hz来说有点太大,后来改成9600了,调试时候都是匹配的
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

8
 
15369350004 发表于 2016-8-14 11:48
把串口助手波特率改成115200试试

调试时候都是匹配的,那是一开始程序用的是115200波特率,因为对于32768Hz来说有点太大,后来改成9600了
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

9
 
lcofjp 发表于 2016-8-15 10:30
也不知道你发送的数据是什么,如果发送的不是英文字母和符号,显示出乱码也是正常的。

你好,我用的是官方例程中的msp430x54xA_uscia0_uart_03,
#include

int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P3SEL = 0x30;                             // P3.4,5 = USCI_A0 TXD/RXD
  UCA0CTL1 |= UCSWRST;                      // **Put state machine in reset**
  UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
  UCA0BR0 = 0x03;                           // 32kHz/9600=3.41 (see User's Guide)
  UCA0BR1 = 0x00;                           //
  UCA0MCTL = UCBRS_3+UCBRF_0;               // Modulation UCBRSx=3, UCBRFx=0
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt

  __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3, interrupts enabled
  __no_operation();                         // For debugger
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
  switch(__even_in_range(UCA0IV,4))
  {
  case 0:break;                             // Vector 0 - no interrupt
  case 2:                                   // Vector 2 - RXIFG
    while (!(UCA0IFG&UCTXIFG));             // USCI_A0 TX buffer ready?
    UCA0TXBUF = UCA0RXBUF;                  // TX -> RXed character
    break;
  case 4:break;                             // Vector 4 - TXIFG
  default: break;  
  }
}

点评

这是我换了一个串口助手调试的截屏,麻烦大神给看一下  详情 回复 发表于 2016-8-15 11:23
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

10
 
young2000 发表于 2016-8-15 11:01
你好,我用的是官方例程中的msp430x54xA_uscia0_uart_03,
#include

int main(void)
{
  WDTCTL = ...

这是我换了一个串口助手调试的截屏,麻烦大神给看一下

2.jpg (370.57 KB, 下载次数: 0)

2.jpg
 
 
 

回复

6040

帖子

195

TA的资源

版主

11
 
自己调试,插上仿真器,把低功耗设置屏蔽掉,改成while(1); 然后设置断点观察收到的数据。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

12
 
频率高,波特率稍微有点不匹配就会出现乱码
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

13
 
你好,我也遇到这个问题,是如何解决的啊
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

14
 
young2000 发表于 2016-8-15 11:23
这是我换了一个串口助手调试的截屏,麻烦大神给看一下

楼主如何解决的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表