while(temp&0x01&&!(temp&(1<<16)));这句话的意思就是判断计数器是否计数完成需要两个条件,第一个条件是计数值为0就是temp&0x01为0,另一个条件就是SysTick->CTRL寄存器的第十六位的标志位countflag为1时,两个条件满足时就完成计时,就跳出循环。
(temp&0x01)&&!(temp&(1<<16))这个是条件语句 temp&0x01 变量temp和0x01按位与,得到一个结果,如果结果为0,结束循环;结果为不为0,在验证下一个条件.!(temp&(1<<16)) 逻辑非语句,先验证temp&(1<<16)先把1向左位移16位,得到的就结果,在后temp按位与,得到的结果 条件temp&(...
所以先分别算temp&0x01和!(temp &(1<<16))。一、temp&0x01只要temp的最低位是1(真),那么结果就是1,反之就是0(假)。二、!(temp &(1<<16)),只要temp的第17位是1,那么结果的17位也是1(前面还有取反符号!,所以是假)。反之就是0(真),最后做逻辑与&&运算。
所以先分别算temp&0x01和!(temp &(1<<16))。一、temp&0x01只要temp的最低位是1(真),那么结果就是1,反之就是0(假)。二、!(temp &(1<<16)),只要temp的第17位是1,那么结果的17位也是1(前面还有取反符号!,所以是假)。反之就是0(真),最后做逻辑与&&运算。 追问: 请以temp=5时说明运算过程,谢谢...
OpenEdv-开源电子网»首页 › 单片机/嵌入式 › STM32-F0/F1/F2专区 › 求助该语句while(temp&0x01&&!(temp&(1<<16))); 返回列表 查看: 11279|回复: 13 求助该语句while(temp&0x01&&!(temp&(1<<16))); [复制链接] 99llllll 1主题 1帖子 0精华 新手入门 积分 25 金钱 25 注册时间 ...
union type1 { unsigned char ch[4]; unsigned long lon; }; //定义用于将32位整数转为4个字节的联合体数据结构 union type1 temp; temp.lon= dat; CS5530_Write (temp.ch[0]); //逐个字节发送数据 CS5530_Write (temp.ch[1]); CS5530_Write (temp.ch[2]); CS5530_Write (temp.ch[3]);...