3717|1

1

帖子

1

TA的资源

一粒金砂(初级)

楼主
 

串口通信波形与收到的数字不一致 [复制链接]

本在在做串口实验的时候,用PROTEUS来仿真,这个实验很简单,就是利用上位机软件控制LED灯的亮灭,在用PROTEUS中的虚拟终端模拟的时候,发现一个这样的现象,求解释:
1.利用十六进制的形式发送数字1——9,利用示波器测量波形
2.在程序中,定义一个数组,在串口接收完成中断函数中将UDR的值赋给数组
3.将实际发送的数字,程序接收到的数字,与示波器测量到的波形进行对比,得到如下现象:发送的数字的ASCII与示波器显示的波形能够匹配得上,但是接收到的数字就完全不一样了,什么原因造成的呢?

另外关于发送数据的时候,起始信号是必须的,那么起始信号是否占用一个串口时钟周期,如果这样的话,再加上一位停止信号,那么就应该是10位才对,可是为什么我所测到的波形都是只有9位数呢?


虚拟终端.png (4.32 KB, 下载次数: 0)

发送一到9的数字

发送一到9的数字

采集数据.png (13.05 KB, 下载次数: 1)

程序中扑捉到的数字

程序中扑捉到的数字

数字1波形.png (3.38 KB, 下载次数: 1)

数字1波形

数字1波形

数字2波形.png (3.2 KB, 下载次数: 0)

数字2波形

数字2波形

数字3.png (3.24 KB, 下载次数: 0)

数字三波形

数字三波形

数字4.png (3.27 KB, 下载次数: 0)

数字4波形

数字4波形

最新回复

1.从4张波形图看,通信线上分别是字符'1'、'2'、'3'、'4',ASCII码的0x31、0x32、0x33、0x34,不带校验位。 2.可能是TTL或CMOS电平信号,而不会是RS-232C电平信号(两者的逻辑是反的)。 3.如果收到的内容不对,先检查收发波特率是否设置得一致。 4.“停止位”已被隐藏在“空闲”里所以看不到,因为两者是同样的电平。  详情 回复 发表于 2014-1-7 08:30
点赞 关注
 

回复
举报

3138

帖子

0

TA的资源

裸片初长成(初级)

沙发
 
1.从4张波形图看,通信线上分别是字符'1'、'2'、'3'、'4',ASCII码的0x31、0x32、0x33、0x34,不带校验位。
2.可能是TTL或CMOS电平信号,而不会是RS-232C电平信号(两者的逻辑是反的)。
3.如果收到的内容不对,先检查收发波特率是否设置得一致。
4.“停止位”已被隐藏在“空闲”里所以看不到,因为两者是同样的电平。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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