OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3274|回复: 3

新手求助 各位解释疑惑

[复制链接]

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-8-15
在线时间
8 小时
发表于 2017-8-15 23:08:04 | 显示全部楼层 |阅读模式
1金钱
我在学习51单片机的时候 ,在串口通信的时候,遇到一个问题: 在TI接收时 需要判断 while(!TI) 用来判断是否接收完成,然后 RI 却不用。当时问老师解释说是因为 单片机的串口通信的发送是串行发送,所以需要判断一位一位的是否发送完成,而接受是并行接收,所以不用。 现在刚刚学习了STM32一段时间用的是战舰,学习到串口的时候在发送和接受的时候又疑惑起来了,所以想问问各位大神,串口通信是不是这样的。

最佳答案

查看完整内容[请看2#楼]

这个就更加简单了.先发送的字节当然会先收到. 至于串口助手是哪个字节先发出来.这个是可以验证的.还请楼主自己亲自验证一下就知道了.屏幕上哪个字节先显示出来..与串口无关,只与屏相关代码有关.并且哪个先显示出来.不会影响人的观看..因为你看不出来.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-8-15 23:08:05 | 显示全部楼层
这个就更加简单了.先发送的字节当然会先收到.  至于串口助手是哪个字节先发出来.这个是可以验证的.还请楼主自己亲自验证一下就知道了.屏幕上哪个字节先显示出来..与串口无关,只与屏相关代码有关.并且哪个先显示出来.不会影响人的观看..因为你看不出来.
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-8-15 23:32:41 | 显示全部楼层
我来说一句,不管是什么单片机,8位机,32位机,不管是51,还是ST.串口实现的过程基本上都是一样的.物理上都是一个位一个位发出去.一个位一个位接收.因为它是串行接口.为了减轻CPU的负担,芯片设计人员设计出了 UART模块外设.它与CPU的接口是字节形式的.即 填充外设缓冲区基本上就完事了..某些外设可能有多个字节,也是差不多一回事.接收同理.外设收到数据会放到接收缓冲区.并且触发中断或者事件.STM32还可以加入DMA单元.更加高效解决这些问题.
回复

使用道具 举报

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-8-15
在线时间
8 小时
 楼主| 发表于 2017-8-16 09:14:20 | 显示全部楼层
操作系统 发表于 2017-8-15 23:32
我来说一句,不管是什么单片机,8位机,32位机,不管是51,还是ST.串口实现的过程基本上都是一样的.物理上都是一 ...

谢谢你,结合你讲的再想想就明白了。不过我还想问一下,就是说:我在串口调试助手上发送1234 那他是4321进入缓冲寄存器还是1234进入缓冲寄存器,还有就是他发送返还回来的时候显示在屏幕上输出的是1234。 但显示的这个1234是先输出的4还是先输出的1?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-20 17:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表