单片机串口通讯问题

sweezin 2003-10-03 09:06:34
从PC机发送数据到单片机出现单片机接收到的数据个数总比发送的少,这一般会是什么原因,请高手指点!不知单片机串口默认设置是不是接收时把零给过滤掉了?
...全文
39 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzxptc 2003-11-13
  • 打赏
  • 举报
回复

一般情况下晶振不是引起收发不对应的原因,你想一下,串口的波特率才多少?异步串口发送时钟允许的误差有多少?再烂的晶振都可以做到的, 除非你的晶振用错了,或者是初始化字算错了,否则的话肯定不是电路上的问题。
我估计是在PC这一方你用的是WINDOWS系统下的编程,这时的串口数据发送经常会不实时,从单片机发送到PC机或从PC机发送到单片机,PC机这一方一般会同时几个字节发送或接收(即使你把它设为单字节也是如此)因此这个问题应该是你的通讯协议没写好,你可以把你的收发过程流程写一下给大家看看?

lzxptc 2003-11-13
  • 打赏
  • 举报
回复

一般情况下晶振不是引起收发不对应的原因,你想一下,串口的波特率才
mjs2000 2003-11-12
  • 打赏
  • 举报
回复
UP
rokeyliu 2003-11-11
  • 打赏
  • 举报
回复
1、您的数据是否准确?如果不准确说明双方波特率不同步或者您的设置有问题
2、如果你的数据缺失可能是您的单片机速度不行
136196 2003-11-11
  • 打赏
  • 举报
回复
回复人: taoest(taoest) ( ) 信誉:114 2003-11-10 22:34:32 得分:0

大家不要乱用词语,DPI是什么来的?BPS才对啊。太丢人了。
-----------------------------------------------------------------------
呵!仔细.

mjs2000 2003-11-11
  • 打赏
  • 举报
回复
我认为:

数据丢失的原因有两个
1。晶振不准确(解决方法,建议用低的波特率 2400)
2。如果你用的是232-485(无源)转换器的话,还需要检查输出电压(解决方法,自己提供一个12v电压源,一般转换器上都有外界电压输入端)
taoest 2003-11-10
  • 打赏
  • 举报
回复
大家不要乱用词语,DPI是什么来的?BPS才对啊。太丢人了。
造成问题还有一种可能,就是数据处理速度不够,也有可能是其他原因造成的时间差导致接收错误。
建议将发送端的停止位改成两位,而接收端改成1位,如果错误少了,那就有机了。
ahboluo 2003-11-10
  • 打赏
  • 举报
回复
看看你的数据位是否选择对
136196 2003-11-09
  • 打赏
  • 举报
回复
yuxiang9999() :
msn:sjh_136196@hotmail.com
email:sjh@ynsoft.net
liuyueying 2003-11-09
  • 打赏
  • 举报
回复
你用的有延时程序吗?
是不是延时时间不精确。
microfisher 2003-11-08
  • 打赏
  • 举报
回复
我也不知道
HEROP 2003-11-08
  • 打赏
  • 举报
回复
1。晶振有误差,
2。接收程序有问题。
ht_toto 2003-11-07
  • 打赏
  • 举报
回复
同意136196(123456)
136196 2003-11-07
  • 打赏
  • 举报
回复
赞同 yuxiang9999() ,极可能是晶振圆整误差的问题.

另:
to yuxiang9999() :
12M晶振发9600dpi,极难成功.重载值什么都不对!2400dpi一定是可以的.
建议换11.059的晶振.
AI & Blockchain 2003-11-07
  • 打赏
  • 举报
回复
对啊,我也遇到这样的问题,我估计是晶振是12M与9600dpi有误差的问题,第6位和第7位重叠了。

请问大虾们,我在12M晶振9600dpi用的累加数是FDH,对不对?

以前用8515,8M晶振,9600dpi也不会有现在的问题的。
zys0001 2003-11-07
  • 打赏
  • 举报
回复
强烈建议使用11.0592晶振,我在串行传输上从没出过错
AI & Blockchain 2003-11-07
  • 打赏
  • 举报
回复
怎么找你呢?
136196 2003-11-07
  • 打赏
  • 举报
回复
可以
AI & Blockchain 2003-11-07
  • 打赏
  • 举报
回复
to 136196(123456),ht_toto(独眼龙) :

可以交个朋友吗?
xiaogang48 2003-10-05
  • 打赏
  • 举报
回复
十分同意heresyydq的观点,试着检查波特率等一系列设置,缓冲大小.再试着加前导码(握手信号).我也遇到过类似问题.若还不行,联系我 115023132 xiaogang48@eyou.com .一起探讨
加载更多回复(5)

27,377

社区成员

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

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