本帖最后由 爬上阁楼的鱼 于 2016-10-7 10:15 编辑
如题 本来好不容易调好了TIM1捕获加DMA采摄像头 可是出去洗个澡吃个饭回来就挂了
总是半传送中断而没有传输完成中断
有大大遇到过吗?? 跪求指点 啊
STM32F4xx_DSP_StdPeriph_Lib_V1.7.1.001.zip
(19.8 MB, 下载次数: 121)
2016-10-7 10:08 上传
点击文件名下载附件
STM32F4xx_DSP_StdPeriph_Lib_V1.7.1.002.zip
(19.8 MB, 下载次数: 119)
2016-10-7 10:09 上传
点击文件名下载附件
STM32F4xx_DSP_StdPeriph_Lib_V1.7.1.003.zip
(14.44 MB, 下载次数: 156)
2016-10-7 10:09 上传
点击文件名下载附件
程序分布在各个.c里
现在基本上一半多一点传输完成 一半半传送不明白是什么 其次咱不懂如何把临时的那些编译文件删了 体积略大 工程是用IAR打开的
芯片STM32F407VET6 摄像头是逐飞的总钻风 似乎就差那么一点点问题无法把数据读完整 跪求大家帮帮忙啊
各位+ @正点原子
初始化没有打开半传送 只是仿真的时候看到标志位置一了 而且照样进了中断 所以我就在中断里检测了一下那个标志并清零了
这是我的中断函数
if((DMA2->LISR&0x800)==0x800)
{
DMA2->LIFCR|=1<<11; //清除传输完成中断
now_row++;
if(now_row<ROW)
{
//while((USART1->SR&0X40)==0);
//USART_SendData(USART1,0xa0);
DMA2_Stream1->CR&=~(1<<0); //关闭DMA传输
while(DMA2_Stream1->CR&0X1); //确保DMA可以被设置
DMA2_Stream1->M0AR=(u32)&image[now_row][0];
DMA2_Stream1->NDTR=188; //传输长度为jpeg_buf_size*4字节
DMA2_Stream1->CR|=1<<0; //重新传输
}
if(now_row >= ROW)
{
//__disable_irq();
mt9v032_finish_flag = 1;
GPIOC->BSRRH|=1<<13; //初始化在MT9V032_Init();
display_188_60();
while((USART1->SR&0X40)==0);
USART_SendData(USART1,image[20][29]);
//__enable_irq();
}
}
if((DMA2->LISR&0x200)==0x200)
{
DMA2->LIFCR|=1<<9;
while((USART1->SR&0X40)==0);
USART_SendData(USART1,0xee);
}
if((DMA2->LISR&0x400)==0x400)
{
DMA2->LIFCR|=1<<10;
DMA2_Stream1->CR|=1<<0; //重新传输
while((USART1->SR&0X40)==0);
USART_SendData(USART1,0xea);
}
最后串口一直在收0xea
一周热门 更多>