UART传输时序的问题

zhangjin739 2014-08-09 10:26:40
小弟不才,没学过多少硬件方面的只是,想问问各位大侠 关于uart 通讯时序的几点问题

这个图上说“起始位:先发出一个逻辑”0”信号,表示传输字符的开始。” 和 “停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。”
这两句话,我有点疑惑,因为在通信过程有很多0或者1,你怎么就知道其中的某一个0或者1就是 start位和stop位呢?
...全文
502 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjin739 2014-08-10
  • 打赏
  • 举报
回复
引用 2 楼 huayuliang 的回复:
波特率啊,一旦波特率设定,那么··· 其实UART收发器就是个移位寄存器,那个波特率就相当于时钟频率。哪怕你连着几个0都可以通过这个频率的时钟脉冲来确定。 嗯,一个萝卜一个坑,就像现代化生产的流水线··· 所以,如果接收端设置的波特率不符合发送的,那么接收到的就会错。。
哦,我可以理解为:相当于uart传输的的每一位都是都是固定的吗,即:|第一位为start |第2-9位为数据位|第10位为stop位| 第一位就算是必须是0,第十位必须是1,对吗,换句话,计算我不知道它是0或者1,我都知道这一位对应的事start和stop, 我这样理解对吗?
xqhrs232 2014-08-10
  • 打赏
  • 举报
回复
应该有个时基定时器吧!通过定时来检测0/1的时长来判断有几个0或者1
aydf1 2014-08-10
  • 打赏
  • 举报
回复
起始位是同步位
zhangjin739 2014-08-10
  • 打赏
  • 举报
回复
谢谢大家,我懂了!
dceacho 2014-08-10
  • 打赏
  • 举报
回复
引用 6 楼 zhangjin739 的回复:
[quote=引用 2 楼 huayuliang 的回复:] 波特率啊,一旦波特率设定,那么··· 其实UART收发器就是个移位寄存器,那个波特率就相当于时钟频率。哪怕你连着几个0都可以通过这个频率的时钟脉冲来确定。 嗯,一个萝卜一个坑,就像现代化生产的流水线··· 所以,如果接收端设置的波特率不符合发送的,那么接收到的就会错。。
哦,我可以理解为:相当于uart传输的的每一位都是都是固定的吗,即:|第一位为start |第2-9位为数据位|第10位为stop位| 第一位就算是必须是0,第十位必须是1,对吗,换句话,计算我不知道它是0或者1,我都知道这一位对应的事start和stop, 我这样理解对吗?[/quote] 是的,如果要求严格的话,你可以检查下stop位 空闲状态时IO口是高,当一旦低了就意味着告诉对方"我要发数据了,准备好", 然后对方安装约定好的波特率来接收
lms2229076385 2014-08-10
  • 打赏
  • 举报
回复
虽然不懂,但是还是顶下
ppsen126 2014-08-09
  • 打赏
  • 举报
回复
这个问题不要太纠结,配置好参数就可以了
哈啤猫 2014-08-09
  • 打赏
  • 举报
回复
波特率啊,一旦波特率设定,那么··· 其实UART收发器就是个移位寄存器,那个波特率就相当于时钟频率。哪怕你连着几个0都可以通过这个频率的时钟脉冲来确定。 嗯,一个萝卜一个坑,就像现代化生产的流水线··· 所以,如果接收端设置的波特率不符合发送的,那么接收到的就会错。。
zhangjin739 2014-08-09
  • 打赏
  • 举报
回复
自己先顶一个!

27,375

社区成员

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

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