串口发送一组数的间隔期间,每个间隔10毫秒,这10毫秒内,串口芯片为什么检测不到数值呢

u010653077 2013-05-11 07:15:08
串口发送一组数的间隔期间,每个间隔10毫秒,这10毫秒内,串口芯片为什么检测不到数值呢,必竞它能检测的数据也只是8位高低交叉的电平,发送数据的间隔期间也是有电平的,为什么 没有根据这些电平生成数据。
...全文
622 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
流型 2013-08-27
  • 打赏
  • 举报
回复
顶8楼的回答
sy_lixiang 2013-08-20
  • 打赏
  • 举报
回复
在你描述的10ms期间,串口发送端的TX引脚为高电平,空闲状态。 你接收端是不会收到任何数据的。 接收端检测到RX引脚有低电平,即起始位时才会去接收数据。
whysoft 2013-08-18
  • 打赏
  • 举报
回复
问题描述很清楚 你的思考很有深度。 原理是这样的:从硬件角度来说,串口接收可以理解为一个高速度采样和FSM(有限状态自动机)的组合体。比如规定是一位起始位,则采样电路会发现高电平到来,它会继续采样并进入记数状态,比如它采5次样,有大于3次为1,它就认为起始位到来了,接下来进入接收数据状态。 所以平时虽然总是有电平的(1或0),但接收器件没有进入接收数据状态,所以不会输出数据。 触发它进入接收数据状态的,是那一位起始位。如果你故意假造一个起始位(例如用干扰),就会收到垃圾数据了。
yzx668 2013-07-09
  • 打赏
  • 举报
回复
问题描述的不是很清楚,你的串口芯片说的是什么芯片,就直接说IC的UART发不出去数据或接收不到数据嘛,如是发数据你的串口调试软件收收不到数据,一可能是你的IC根本就没有发出数据,还有可能是调试软件的波特率设置得不对,接不到数据。还有是你的电路是否对的。如果是你的IC接收不到数据,情况会多一点,跟中断的开启,中断优先,整个电路工作都有关联,也许你的优先级最高中断一直响应,都不能退出中断。
Corey_Wong 2013-07-08
  • 打赏
  • 举报
回复
引用 4 楼 u010653077 的回复:
[quote=引用 1 楼 falloutmx 的回复:] 如果波特率不对,搜不到数据起始标记,自然就不会采数据
什么是数据起始标记,它跟其他位的电平高低有区别吗?[/quote]数据 有起始标志 和 结束位 自己设置下也行 最好用 示波器
mtm2000 2013-07-05
  • 打赏
  • 举报
回复
起始标记 就是检测到下降沿跳变
u010653077 2013-05-14
  • 打赏
  • 举报
回复
引用 1 楼 falloutmx 的回复:
如果波特率不对,搜不到数据起始标记,自然就不会采数据
什么是数据起始标记,它跟其他位的电平高低有区别吗?
  • 打赏
  • 举报
回复
数据没发送出来吧
nj_zbl 2013-05-13
  • 打赏
  • 举报
回复
用示波器量一下,只要你发出来了,就一定能测量到。如果量不到,那就说明一定是没有发出来。你好好查查串口配置代码。
falloutmx 2013-05-13
  • 打赏
  • 举报
回复
如果波特率不对,搜不到数据起始标记,自然就不会采数据

6,169

社区成员

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

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