UART传输时序的有关问题
UART传输时序的问题
小弟不才,没学过多少硬件方面的只是,想问问各位大侠 关于uart 通讯时序的几点问题

这个图上说“起始位:先发出一个逻辑”0”信号,表示传输字符的开始。” 和 “停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。”
这两句话,我有点疑惑,因为在通信过程有很多0或者1,你怎么就知道其中的某一个0或者1就是 start位和stop位呢?
------解决方案--------------------
波特率啊,一旦波特率设定,那么···
其实UART收发器就是个移位寄存器,那个波特率就相当于时钟频率。哪怕你连着几个0都可以通过这个频率的时钟脉冲来确定。
嗯,一个萝卜一个坑,就像现代化生产的流水线···
所以,如果接收端设置的波特率不符合发送的,那么接收到的就会错。。
------解决方案--------------------
这个问题不要太纠结,配置好参数就可以了
------解决方案--------------------
起始位是同步位
------解决方案--------------------
应该有个时基定时器吧!通过定时来检测0/1的时长来判断有几个0或者1
------解决方案--------------------
虽然不懂,但是还是顶下
------解决方案--------------------
是的,如果要求严格的话,你可以检查下stop位
空闲状态时IO口是高,当一旦低了就意味着告诉对方"我要发数据了,准备好", 然后对方安装约定好的波特率来接收
小弟不才,没学过多少硬件方面的只是,想问问各位大侠 关于uart 通讯时序的几点问题
这个图上说“起始位:先发出一个逻辑”0”信号,表示传输字符的开始。” 和 “停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。”
这两句话,我有点疑惑,因为在通信过程有很多0或者1,你怎么就知道其中的某一个0或者1就是 start位和stop位呢?
------解决方案--------------------
波特率啊,一旦波特率设定,那么···
其实UART收发器就是个移位寄存器,那个波特率就相当于时钟频率。哪怕你连着几个0都可以通过这个频率的时钟脉冲来确定。
嗯,一个萝卜一个坑,就像现代化生产的流水线···
所以,如果接收端设置的波特率不符合发送的,那么接收到的就会错。。
------解决方案--------------------
这个问题不要太纠结,配置好参数就可以了
------解决方案--------------------
起始位是同步位
------解决方案--------------------
应该有个时基定时器吧!通过定时来检测0/1的时长来判断有几个0或者1
------解决方案--------------------
虽然不懂,但是还是顶下
------解决方案--------------------
是的,如果要求严格的话,你可以检查下stop位
空闲状态时IO口是高,当一旦低了就意味着告诉对方"我要发数据了,准备好", 然后对方安装约定好的波特率来接收