PHP实现抓取百度搜索结果并存储-自动时钟低电平时间延长

需积分: 44 20 下载量 175 浏览量 更新于2024-08-10 收藏 1.85MB PDF 举报
"自动时钟低电平时间延长-php实现抓取百度搜索结果页面【相关搜索词】并存储到txt文件示例" 这篇文档主要介绍了在dsPIC30F2010这种高性能16位数字信号控制器中,如何实现I2C通信协议中的自动时钟低电平时间延长功能。这个功能在从模式下工作时,能帮助同步读缓冲器和写主器件的操作。 16.5.1 发送时钟低电平时间延长:在10位或7位地址发送模式下,如果缓冲器为空(TBF位清零),在第九个时钟的下降沿后清零SCLREL位,即实现了时钟延长。在从发送模式下,不论STREN位状态如何,都会进行时钟延长。第九个时钟之后,发生时钟同步,如果器件在第九个时钟的下降沿采样到ACK且TBF位仍为零,SCLREL位会被自动清零,SCL线变为低电平。用户中断服务程序必须设置SCLREL位为1,以便在主器件启动新的发送序列前有时间执行中断服务程序并加载I2CTRN的内容。 16.5.2 接收时钟低电平时间延长:I2CCON寄存器中的STREN位用于启用从器件接收模式下的时钟低电平时间延长。当STREN位被置1时,SCL引脚在每个数据接收序列结束后会保持低电平。无论是7位还是10位寻址,方法相同。在接收序列第九个时钟后进行时钟延长,如果RBF位为1,SCLREL位会被自动清零,强制SCL保持低电平,用户中断服务程序需要设置SCLREL位为1,以便在主器件启动新的接收序列前读取I2CRCV的内容,防止缓冲器溢出。 16.5.3 7位和10位寻址的时钟低电平时间延长:在7位寻址时,STREN置1,当缓冲器满时SCL线保持低电平;10位寻址时,地址自动处理,每个数据接收或发送序列同样进行时钟延长。 16.5.4 软件控制的时钟低电平时间延长:STREN位为1时,软件可以通过清零SCLREL位来控制时钟延长,需要与SCL时钟同步。清零SCLREL位不会立即使SCL保持低电平,除非模块检测到SCL的下降沿且SCL为低。SCL输出保持低电平直到SCLREL位被重新置1且I2C总线上所有其他器件都释放了SCL,以满足最小高电平时间要求。如果STREN位为0,软件对SCLREL位的写操作将被忽略。 16.7 中断:I2C模块有两个中断标志,MI2CIF(主中断标志)在主设备报文事件完成时置1,触发中断;SI2CIF(从中断标志)在检测到发往从设备的报文时置1,触发中断。 注意事项指出,如果在第九个时钟下降沿之前设置了TBF或RBF位,SCLREL位不会被清零,不会发生时钟延长。在中断服务程序中,用户需要根据实际情况设置SCLREL位,以避免缓冲器溢出。 这个文档虽然没有提及PHP实现抓取百度搜索结果页面并存储到txt文件的具体细节,但提供了dsPIC30F2010微控制器在I2C通信中的高级操作,这对于理解和优化嵌入式系统中的通信协议至关重要。