使用新塘nuc980 开发板,用ov2640 取得图像 。
i2c也有类似情况 ,摄像头有2个上拉电阻,开发板也有2个上拉电阻,如果不拿下2个 spi nend 也无法正常运行,但是不拿下来程序下载到 ram 里面是可以正常运行的。
void PacketFormatDownscale(void){
// 启用 CAP0 的中断
CAP_EnableInt(CAP0, CAP_INT_VIEN_Msk);
printf("Setting vertical sync polarity, Hsync polarity, pixel clock polarity, sensor format and order\r\n");
// 打开 CAP0 ,设置 OV2640 相机的极性、格式和顺序
CAP_Open(CAP0, OV2640SensorPolarity/OV2640DataFormatAndOrder, CAP_CTL_PKTEN);
// 设置裁剪窗口的垂直/水平起始地址和裁剪窗口的大小
CAP_SetCroppingWindow(CAP0, 0, 0, SENSOR_IN_HEIGHT, SENSOR_IN_WIDTH);
// 设置系统内存包基地址寄存器
CAP_SetPacketBuf(CAP0, (uint32_t)u8FrameBuffer);
// 设置数据包缩放的垂直/水平因子寄存器
CAP_SetPacketScaling(CAP0, SYSTEM_HEIGHT, SENSOR_IN_HEIGHT, SYSTEM_WIDTH, SENSOR_IN_WIDTH);
// 设置数据包帧输出像素跨距宽度
CAP_SetPacketStride(CAP0, SYSTEM_WIDTH);
// 开始图像捕获接口
printf("Working in CAP interrupt\r\n");
}
这个函数看起来是为了配置图像采集接口(CAP Interface)并启动。如果你在下载到spi nend时遇到问题,可能的原因之一是 spi nend和cap接口之间存在某种冲突,或者你的系统没有足够的资源来同时处理这两个操作。
可以尝试以下几种方法: