新手上路
- 积分
- 30
- 金钱
- 30
- 注册时间
- 2018-8-4
- 在线时间
- 23 小时
|

楼主 |
发表于 2020-5-29 09:29:33
|
显示全部楼层
我也参考了你们的例程,我用的是DCMI中断模式,单次拍摄,发现大部分时间OV2640不能触发DCMI中断,好奇怪
if(1)
{
HAL_Delay(10000);
if(1)
{
printf("Start shooting \r\n");
HAL_DCMI_Stop(&hdcmi);
MX_DCMI_Init();
__HAL_DCMI_ENABLE_IT(&hdcmi, DCMI_IT_FRAME);
HAL_DCMI_Start_DMA(&hdcmi,DCMI_MODE_SNAPSHOT ,(uint32_t)&CAMERA_FRAME_BUFFER,1600*8);
}
// while(HAL_GPIO_ReadPin(CTR_GPIO_Port,CTR_Pin) == RESET);
}
下面还有个回调函数,用OV5640就没有这个问题,
void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi)
{
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_DCMI_FrameEventCallback could be implemented in the user file
*/
printf("End of shooting\r\n");
//HAL_UART_DMAStop(&huart1);FF D8 FF E0
// printf("%x %x %x %x\r\n",CAMERA_FRAME_BUFFER[0],CAMERA_FRAME_BUFFER[1],CAMERA_FRAME_BUFFER[2],CAMERA_FRAME_BUFFER[3]);
// if(CAMERA_FRAME_BUFFER[0] == 0){
// CAMERA_FRAME_BUFFER[0] = 0xFF;
// CAMERA_FRAME_BUFFER[1] = 0xD8;
// CAMERA_FRAME_BUFFER[2] = 0xFF;
// CAMERA_FRAME_BUFFER[3] = 0xE0;
// }
HAL_UART_Transmit(&huart1, (uint8_t*)CAMERA_FRAME_BUFFER, (sizeof(CAMERA_FRAME_BUFFER)/sizeof(char)),0x01FF);
}
帮忙看看怎么回事,谢谢
|
|