500万彩票网

8月21日-23日 机器视觉助力智能制造创新发展大会 北京国际会议中心→ 立即报名 ←
电子产品世界 » 论坛500万彩票网 » 嵌入式开发 » MCU » Help! IO口模拟UART通信遇到的问题

共8条 1/1 1 跳转至

Help! IO口模拟UART通信遇到的问题

助工
2019-06-27 23:02:56    评分

如上图,是串行发送8位数据的时序图

下图的程序是利用51单片机的IO口模拟UART串行通信

1.jpg


红色箭头所指的程序,是表示判断数据是否接收完毕

结合时序图来看,while(!RxdEnd);语句是判断数据是否接收完毕,

500万彩票网若接收完毕,则代表RxdEnd这个标志位等于1,即检测到停止位

如果8位数据中出现1,会不会使得程序误以为接受到的1是停止位的1,从而误以为接收完成了?

2.jpg








关键词: UART     模拟串口    

菜鸟
2019-06-27 23:15:31    评分
2楼

RxdEnd不可能是直接检测高电平的来设置的。

是根据波特率来的。比如起始位触发RxdEnd=0接收,然后是8bit数据,然后是停止位。这个要


靠定时器来同步的。也就是说至少要过了10位时间才能触发RxdEnd=1



菜鸟
2019-06-27 23:22:05    评分
3楼

那应该是个位变量,是由其它代码在控制,结束时置1结束位是高电平,不代表高电平就是结束


菜鸟
2019-06-27 23:28:03    评分
4楼

不管怎么样的模拟串口程序,其有一个共同的特征就是得有一个精确控制的检测周期来进行数


据的读入,这必须匹配输入波特率。

离开这个概念,所以的串口包括硬件串口都不能正常工作。

对于有精确时钟控制的软串口程序,其判断停止位时间,不可能落在数据位上面。




菜鸟
2019-06-29 13:23:20    评分
5楼

不管怎么样的模拟串口程序,其有一个共同的特征就是得有一个精确控制的检测周期来进行数ru 。


专家
2019-06-29 21:00:11    评分
6楼
谢谢分享,学习了。

助工
2019-06-30 21:51:17    评分
7楼

最近我在DIY一个光纤串口,主要实现隔离信号和保护电脑免受高压、静电等损坏,喜欢的朋友,可以多关注我或直接联系哦


工程师
2019-07-03 09:35:18    评分
8楼

市场整合,情理之中的事情吧!


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
幸运时时彩 大发时时彩 五分时时彩 财神彩票 小米彩票开奖 幸运时时彩 幸运时时彩 亿信彩票主页 鼎鑫彩票 大发时时彩