打印

请教?什么时候串口发送 等while会一直等?

[复制链接]
2044|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
渤海三叠浪|  楼主 | 2012-9-5 10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 渤海三叠浪 于 2012-9-5 14:44 编辑

send_串口();while(直到发送成功);



请教什么情况下会永远发送不成功?

谁遇到过?多谢!!!!
--------------------------------------
各位大侠,我描述的确实有问题。
我的意思就是while(TI)

现在joyme大侠给出答复是:只有模块坏掉了,才会永远发送不成功。
yewuyi目前还没有给出答案。
多谢yewuyi大侠

相关帖子

沙发
yewuyi| | 2012-9-5 11:11 | 只看该作者
最简单的例子,通信线断了。

使用特权

评论回复
板凳
渤海三叠浪|  楼主 | 2012-9-5 12:21 | 只看该作者
2# yewuyi
大侠好热心

但是线断了 还是能发送出去啊

大侠是不是没搞过RS232?

使用特权

评论回复
地板
coody| | 2012-9-5 13:09 | 只看该作者
你示波器看看是否真的发送了数据?

使用特权

评论回复
5
yewuyi| | 2012-9-5 13:52 | 只看该作者
2# yewuyi
大侠好热心

但是线断了 还是能发送出去啊

大侠是不是没搞过RS232?
渤海三叠浪 发表于 2012-9-5 12:21


你指的发送端还是接收端?如果是发送端,则看你‘直到发送成功’是用什么来判断的?

呵呵,俺用232的时候,估计你还在上学呢。。。

使用特权

评论回复
6
joyme| | 2012-9-5 13:56 | 只看该作者
send_串口();while(直到发送成功);

你指的是经常写的while(TI)吗?这是发送完成的标志位,确实外部情况不会导致失败,除非UART模块坏了
主要是它的判断机制,它只是当内部一位寄存器已经将一个字节发送完就算成功,至于接受方是否接到,甚至发送的数据是否正确都不管的

如果不是,同样,你先要了解其判断机制,才能知道什么情况会成功,什么情况会失败

使用特权

评论回复
7
渤海三叠浪|  楼主 | 2012-9-5 16:22 | 只看该作者
你指的是经常写的while(TI)吗?这是发送完成的标志位,确实外部情况不会导致失败,除非UART模块坏了
主要是它的判断机制,它只是当内部一位寄存器已经将一个字节发送完就算成功,至于接受方是否接到,甚至发送的数 ...
joyme 发表于 2012-9-5 13:56

对  我说的是[size=11.818181991577148px]经常写的while(TI)

使用特权

评论回复
8
864| | 2012-9-6 08:17 | 只看该作者
如果不放心加个超时判断,超时后就退出。否则假设存在程序跑飞到了这句上面实际又没东西在发送那估计就死了,不过也都是瞎假设一下,也没真正碰到过

使用特权

评论回复
9
dlyt_test001| | 2012-9-6 08:30 | 只看该作者
真没碰到过一直等TI,不成功。
编程时最好加超时!

使用特权

评论回复
10
jlass| | 2012-9-6 09:01 | 只看该作者
uboot中的串口操作就是这样的,逻辑上没有问题
失败的话,要么是串口坏了,要么就是数据读取失败(就是发送标志位已经为0了,但你读到的却是1)

使用特权

评论回复
11
zhaodl520| | 2012-9-6 09:41 | 只看该作者
32路模拟量信号发生器MD13213
可同时产生32路0-5V的模拟信号
串口转TTL/STC下载模块/刷机模块/MD21T22

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

637

帖子

1

粉丝