5487|8

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

msp430串口收发程序 [复制链接]

现在想用msp430的串口进行收发程序开发,但不知道对方一次发送过来多少数据?如何才能完整接收呢?我感觉使用中断的方式一次只能接收一个字节的数据,不能把对方发送的完整数据全部接收!请问有什么解决办法?谢谢!
另外,使用串口通信,一方是msp430,一方是c51,串口速率都设置为115200,但因为430单片机和51单片机执行每次指令需要的周期不同,请问这样会影响通信吗?谢谢!

最新回复

使用中断形式,来了接收中断就去读数据,然后尽快把数据存储到某个地方或者进行其它的处理,然后再把中断打开,处理得好不会丢数据的,两方的指令周期不同没有关系,保证波特率一致且能快速处理接收到的数据就行了。  详情 回复 发表于 2010-1-23 15:10
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1. 串口本身只是定义了物理层的东西,至于说数据是否接收完全这要靠上层协议来保证。
2. CPU指令的速度和外设工作没有很直接的关系,一般外设比CPU慢,这也引入中断机制的部分原因。
3. 串口确实是基于单个字符传送的,这点其实很重要。
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼上两位 正解。

楼主还可以找下430、51的串口通讯的程序,分别研究下,就会更明白啦。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
ls正解
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
主频与RS232通信无关,只要主频稳定,只是可能数据短时间发太多,可能51吃不消。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
还有一点 楼主要注意 MSP430串口是全双工的, 串口发送缓冲区和串口接收缓冲区是分开的,而51是半双工的,串口发送缓冲区和串口接收区是在一块的,所以发送和接收是不能同时的,这块51的数据处理 是要注意的
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
因为430单片机和51单片机执行每次指令需要的周期不同,请问这样会影响通信吗?

自己约定一个简单的协议就可以了。。。
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

8
 
没有关系,波特率低些就好了。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
使用中断形式,来了接收中断就去读数据,然后尽快把数据存储到某个地方或者进行其它的处理,然后再把中断打开,处理得好不会丢数据的,两方的指令周期不同没有关系,保证波特率一致且能快速处理接收到的数据就行了。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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