天嵌 ARM开发社区

 找回密码
 注册
查看: 2269|回复: 4

关于UATR发送数据完成判断语句,菜鸟求解释

[复制链接]
tianqian2012 发表于 2012-11-22 15:01:21 | 显示全部楼层 |阅读模式
while(!(rUTRSTAT0&(1<<2)))//等待数据发送完成,rUTRSTAT0为发送和接收是否完成的状态位寄存器,当发送缓存器无有效数据且最后一个字节数据被发送后,rUTRSTAT0的第二位自动置1,我想问的是这里是怎么判断的呢,主要就是这里加了个这个!符号,我就怎么也想不通,理解不了呢,菜鸟求详解
TQ-ZQL 发表于 2012-11-22 15:25:25 | 显示全部楼层
没有有效数据时:rUTRSTAT0&(1<<2)为真,加个!就变成了假了
 楼主| tianqian2012 发表于 2012-11-22 15:58:49 | 显示全部楼层
TQ-ZQL 发表于 2012-11-22 15:25
没有有效数据时:rUTRSTAT0&(1

我突然发现我不是这句没看懂,我也知道他变假了,我是整段程序没看懂
static void Uart0_SendByte(int data)
{
    if(data == '\n')
    {
        while(!(rUTRSTAT0 & (1 << 2)));//等待发送完成
      rUTXH0 = '\r';
    }
    while(!(rUTRSTAT0 & (1 << 2)));   
     rUTXH0 = data  ;   
}

这地方怎么详细的理解这段程序?谢谢哈
TQ-ZQL 发表于 2012-11-22 16:39:06 | 显示全部楼层
本帖最后由 TQ-ZQL 于 2012-11-22 16:41 编辑

        while(!(rUTRSTAT0 & (1 << 2)));//等待发送完成
      rUTXH0 = '\r';//发送完了之后再将要发的数据(\r)放到相关的寄存器中,发送。如果是“\n”会自行多发一个\r.

 楼主| tianqian2012 发表于 2012-11-22 17:02:41 | 显示全部楼层
TQ-ZQL 发表于 2012-11-22 16:39
while(!(rUTRSTAT0 & (1

谢谢哈,明显就是基础的C语言,还是底子太薄弱啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-6-2 21:53 , Processed in 1.046875 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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