官方QQ群收藏本站

百问linux嵌入式论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 50|回复: 1

串口中while(!)的判断

[复制链接]

3

主题

6

帖子

41

积分

新手上路

Rank: 1

积分
41
发表于 2020-1-17 23:01:26 | 显示全部楼层 |阅读模式
本帖最后由 silverviolet 于 2020-1-20 16:24 编辑

注意:如果点击空白处无法输入,则点击字会有输入提示符 | 则可以使用键盘进行输入!

此板块为  [ARM裸机加强版]
  • 问题所在章节:第一期新视频第11课,串口的使用
  • 发生问题的运行环境:
  • 问题发生描述:
  • int putchar(int c)
  • {
  •         /* UTRSTAT0 */
  •         /* UTXH0 */
  •         while (!(UTRSTAT0 & (1<<2)));
  •         UTXH0 = (unsigned char)c;
  •         
  • }
  • while(!条件);,如果条件为假,则!条件为真,循环。
  • 如果条件为真,则!条件为假,跳出循环。
  • 我的问题在于UTRSTAT0 & (1<<2)的时候发送缓冲器和移位缓冲器内没有数据,!(UTRSTAT0 & (1<<2))应该是表示有数据,我看过while(条件)内的条件要么是0要么是非0,是0就跳出非0则循环,这个有没有数据怎么确定它是多少呢?


  • 输出的错误信息:

回复

使用道具 举报

1

主题

3

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2020-1-28 18:31:50 | 显示全部楼层
这样是判断它有数据等待它发送完再把新数据传入到UTXH0寄存器里面啊
回复 支持 反对

使用道具 举报

技术支持
在线咨询
咨询热线
0755-86200561
微信扫一扫
获取更多资讯!

Archiver|小黑屋|百问linux嵌入式论坛     

GMT+8, 2020-2-18 07:37 , Processed in 0.043081 second(s), 8 queries , File On.

Powered by Discuz! X3.3 Licensed

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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