void COM(void) { U8 i; for(i=0;i<8;i++) { U8FLAG=2; while((!DQ)&&U8FLAG++); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(DQ)U8temp=1; U8FLAG=2; while((DQ)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 // 如果高电平高过预定0高电平值则数据位为 1 U8comdata<<=1; //左移1位 U8comdata|=U8temp; //U8comdata与U8temp相或,结果保存在U8comdata中。 } }
时间: 2023-06-15 17:04:46 浏览: 77
STM32单片机硬件SPI驱动TFTLCD(ST7735驱动)软件例程源码+Proteus仿真.zip
5星 · 资源好评率100%
这是一段 C 语言代码,可能是用来读取 DS18B20 温度传感器数据的。具体来说,这段代码在循环中检测 DQ 引脚的电平变化,根据 DS18B20 的通信协议,当 DQ 引脚变为高电平时,表示传感器发送了一个位,根据高电平的持续时间来判断该位是 0 还是 1。最终将读取到的 8 位数据保存在 U8comdata 变量中。
阅读全文