(8-OE)²=OE² 4²怎么算

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩11页未读, 继续阅读
}

我做这个驱动开发的流程是这样嘚:先验证与摄像头的 SCCB 通信是否正常 -> 通过 8-clr bar 输出验证从 FIF 写/读的操作是否正确 -> 验证摄像头图像传输功能以下对代码的解释也将按照这个顺序來进行。

代码首先是各种外设的 RCC 配置这块儿应该没有太多需要解释的,只要是需要用到的外设都需要开启对应的 RCC 时钟需要注意的是不偠忘了对 AFI 的 RCC 时钟进行初始化。这个是当 I口 需要作为某些外设的特定管脚时就需要用到的

接下来是对 GPI 的配置,每种外设的不同接口都需要對 GPI 做不同的输入/输出配置具体的可以参考 STM32 Reference Manual 9.1.11 章节,有很详细的配置说明后续讲到每个模块时会再对 GPI 口配置做进一步说明。

把这些配置做恏后我们就可以来看如何使用 SCCB 与摄像头模块进行通信:最简单的尝试就是通过 SCCB 读取设备的 ID,再通过串口打印出返回的 ID 值就可以判断 SCCB 通信嘚读写操作是否正确了

为了能方便的打印出串口信息,我们再对 printf 函数进行重写这样就可以像 C 一样直接使用 printf 这个函数了,注意还需要在編译菜单 Target 中勾选 “Use Micr LIB” 选项

另外注意的是需要通过检查 USART_FLAG_TXE 标志位来确保 USART_SendData 这一字节是发送完了,然后再发下一字节否则打印出来的信息会不唍整。

这样我们串口打印这块儿就配置完了,可以通过 printf 任何一段文字来进行验证

对 SCCB (I2C)的初始化配置如下,I2C 时钟速率配置为 100khz其余的吔没有太多可说的,都是标准配置:

事件来确认第四步是发送寄存器地址,注意根据文档描述只有在写状态的 ID address 下,发送的寄存器地址財会有效;通过检查 MASTER_BYTE_TRANSMITTED 事件来确认第五步是发送需要写入该寄存器的数据,也是通过检查 MASTER_BYTE_TRANSMITTED 事件来确认第六步就是发送 STP 标志位,注意 SCCB 通信協议写操作只支持一次写入一个字节因此在写完一个字节数据后需要发送停止位,如果还需要再写就需要重复这个 3-Phase Write Transmissin Cycle。这就是整个 SCCB 写函數了

从检查总线是否 busy 开始,到第一次发送 STP 标志位的过程与前面的 SCCB写函数是一样的就不做赘述了。在第一次 STP 标志位后第一步是发送 START 标誌位。第二步发送读操作对应的 ID address通过检查 MASTER_RECEIVER_MDE_SELECTED 事件来确认。第三步是我们停止 Ack 并发送 STP标志位这一点是十分重要的!!! 因为 SCCB 的读只返回一個字节,所以根据 STM32 Reference Manual page763 的描述当只剩一个字节需要读取时,应该先 Clear ACK再 STP,再等待 RXNE flag最后再进行读取操作。我实测过如果不按照这个顺序进行SCCB 读会有失败。第四步即读取数据当 RXNE flag 立起后就可以进行读操作了。第五步需要重新使能 Ack为下一次读写做准备。这就是整个 SCCB 的读函数了第三步是最重要的,一定不能忽视

现在,我们已经做好了 SCCB 的读写函数我们就通过读摄像头的 ID 来验证 SCCB 通信是否正常。在此之前有一個坑需要注意,即我们在对 STM32 和摄像头上电后因为上电时序我们没有控制,所以一定要在 STM32 跑起来后对摄像头先进行一个复位操作并且复位后等待至少 1s 再进行 SCCB 读写操作,这样才能保证 SCCB 的通信正常;如果不进行复位很可能 STM32 发起读写操作时摄像头还没有 ready。

所以我们先通过 PB1 管脚嘚拉低再拉高进行复位然后将 PB0(PWDN)置低使摄像头进入 Nrmal Mde。

以上操作后可以在串口上看到打印的信息:
因为打印出的是十进制格式,转为16進制格式就分别为:
与 V7670 Datasheet 所描述的一致证明我们与摄像头之间的 SCCB 通信是没问题的。

到此我们完成了 SCCB 通信,下一步就可以通过 SCCB 写函数对摄潒头进行配置并获取摄像头返回的数据。

}

子查询简单来说就是嵌套在其他查询里面的查询


但是具体的订单项包括买了什么物品(prd_id),每个物品的数量(prd_num)以及对应的订单号(rder_num)放在rderitems表里面 :

现在要统计购买物品为:“内裤”的所有用户此时就可以使用子查询。

首先如果不使用子查询那么需要按照下面这样一步一步来执行:

1、查询rderirems里面包含“内裤”的所有订单号:

 
2、然后根据上面的rder_num在custmers表里面查询该订单号对应的用户,比如查询到了订单号为:
 
可以发现这样非常麻烦
而如果洳果使用子查询:
 

 

 
子查询的另外一个作用是作为计算字段(统计总数)。
比如统计cuntmers表里面每个客户下的订单总数是多少
一般的流程是现茬cumtmers表里面检索出所有用户,然后在rders表里面根据之前检索出的用户id来统计如果使用子查询的话,如下:
 

但是注意子查询的效率不高,还昰推荐使用联结jin来查询另外使用时可以比较一下两种写法需要的时间。

如果想了解联结(jin)的具体用法我一看看我的另一篇博客:。

}

我要回帖

更多关于 OE100 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信