2095|2

1704

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

关于MSP430F5529单片机的串口问题 [复制链接]

要疯了,,现在的问题是,使用的串口调试助手来调试的,开发环境从IAR低版本到高版本以及CCS,程序是官方程序和自己编写的,以及网友的。板子是标准板,还有个自己的板子。USB转串口线两条。但是结果都一样。
主要是使用串口调试助手发送字符串,然后接收相同的。结果是,如果我发较长的字符串,前四位会丢失。单个发送字符,根本没有任何返回信息。我简直要疯了,真的不知道原因了,期待大神拯救啊
代码如下:
#include

int main(void)
{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

P3SEL = BIT3+BIT4; // P3.4,5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST; // Put state machine in reset
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 6; // 1MHz 9600 (see User's Guide)
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16; // Modln UCBRSx=0, UCBRFx=0,
// over sampling
UCA0CTL1 &= ~UCSWRST; // Initialize USCI state machine
UCA0IE |= UCRXIE; // Enable USCI_A0 RX interrupt
P4OUT=0;
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, 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;
}
}

最新回复

想想5529刚出炉的时候自己也是这么折腾的,这么多年过去了,代码基本看不下去了,给个思路:来个从简到繁,从硬件调到到软硬结合;先将收发短接,用串口调试助手类软件测试转换器是否正常(按你的描述,这一步可以不用,你的硬件应该是正常的);其次采用最简单的先发送再收发:先定时发送单个字符,调试成功后在尝试向电脑发送字符串,发送正常后,开始测试单个字符接收并转发,进一步测试整个字符串收发,慢慢来!最后,才是开始真正意义上的收发通讯   详情 回复 发表于 2020-9-5 23:34
 
点赞 关注

回复
举报

1万

帖子

139

TA的资源

版主

沙发
 

显然是程序编制有错,先检查串口设置,再检查串口接收和转发程序,从每次一个字节开始调试,多字节需要采取定长、无信号时间或基于协议来判断。

 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 

回复

648

帖子

2

TA的资源

纯净的硅(高级)

板凳
 

想想5529刚出炉的时候自己也是这么折腾的,这么多年过去了,代码基本看不下去了,给个思路:来个从简到繁,从硬件调到到软硬结合;先将收发短接,用串口调试助手类软件测试转换器是否正常(按你的描述,这一步可以不用,你的硬件应该是正常的);其次采用最简单的先发送再收发:先定时发送单个字符,调试成功后在尝试向电脑发送字符串,发送正常后,开始测试单个字符接收并转发,进一步测试整个字符串收发,慢慢来!最后,才是开始真正意义上的收发通讯

 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表