新手上路
- 积分
- 44
- 金钱
- 44
- 注册时间
- 2024-2-5
- 在线时间
- 10 小时
|
摄像头例程里
void jpeg_data_process(void)
{
uint16_t i;
uint16_t rlen;
uint32_t *pbuf;
g_curline = g_yoffset;
if (g_ov_mode & 0X01)
{
if (g_jpeg_data_ok == 0)
{
__HAL_DMA_DISABLE(&g_dma_dcmi_handle);
rlen = jpeg_line_size - __HAL_DMA_GET_COUNTER(&g_dma_dcmi_handle);
pbuf = g_jpeg_data_buf + g_jpeg_data_len;
if (DMA1_Stream1->CR & (1 << 19))
{
for (i = 0; i < rlen; i++)
{
pbuf = g_dcmi_line_buf[1];
}
}
else
{
for (i = 0; i < rlen; i++)
{
pbuf = g_dcmi_line_buf[0];
}
}
g_jpeg_data_len += rlen;
g_jpeg_data_ok = 1;
}
if (g_jpeg_data_ok == 2)
{
__HAL_DMA_SET_COUNTER(&g_dma_dcmi_handle, jpeg_line_size);
__HAL_DMA_ENABLE(&g_dma_dcmi_handle);
g_jpeg_data_ok = 0;
g_jpeg_data_len = 0;
}
}
else
{
lcd_set_cursor(0, 0);
lcd_write_ram_prepare();
}
}
疑问:这个g_jpeg_data_ok 标志位在一帧数据处理完后完成后,第一帧图像输出到上位机,在void jpeg_test(void)函数里被赋值为2后,再次进入一帧完成中断时,也就是第二帧,进入帧中断直接执行 if (g_jpeg_data_ok == 2) 语句,那是不是这一帧数据作废了,开始重新采集第三帧图像?
|
|