专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
DCMI相机(JPG+BMP)
2019-07-21 08:00
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
3559
43
1291
GD STM32F407学习板新增例程,DCMI相机,在原来的基础上增加JPG编码保存,320*240照片效果图如下,按下键1保存为BMP格式,按下键2保存为JPG格式,工程源码上传。嘿嘿,准备暑假也来写个PDF学习笔记,主要把重点放在用F4做图像与音频处理这一块。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
43条回答
opoop130
1楼-- · 2019-07-22 10:27
求相机的学习笔记!
加载中...
骤雨龙元
2楼-- · 2019-07-22 15:18
精彩回答 2 元偷偷看……
加载中...
zsx_op
3楼-- · 2019-07-22 20:41
我就是想存在ram中,但是设置方式可能不对存到的数据一点点都收不到。用串口打印出来就是0xffff ffff 。这是初始化的数值。 DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_Continuous; //连续模式 DCMI_InitStructure.DCMI_SynchroMode = DCMI_SynchroMode_Hardware; //嵌入式 DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Falling; //下降沿 DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_High; //垂直同步极性 DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_High; //水平同步极性 DCMI_InitStructure.DCMI_CaptureRate = DCMI_CaptureRate_All_Frame; //帧捕捉频率:所有,1/2或1/4 DCMI_CaptureRate_All_Frame DCMI_InitStructure.DCMI_ExtendedDataMode = DCMI_ExtendedDataMode_8b;//指定数据宽度:8位,10位,12位或14位 DCMI_Init(&DCMI_InitStructure);
/* DCMI Interrupts config ***************************************************/ DCMI_ITConfig(DCMI_IT_VSYNC, ENABLE); DCMI_ITConfig(DCMI_IT_LINE, ENABLE); DCMI_ITConfig(DCMI_IT_FRAME, ENABLE); DCMI_ITConfig(DCMI_IT_ERR, ENABLE); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = DCMI_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);
/* Configures the DMA2 to transfer Data from DCMI to the LCD ****************/ /* Enable DMA2 clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); /* DMA2 Stream1 Configuration */ DMA_DeInit(DMA2_Stream1);
DMA_InitStructure.DMA_Channel = DMA_Channel_1; //dma流通道 DMA_InitStructure.DMA_PeripheralBaseAddr = DCMI_DR_ADDRESS; //外设地址 DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&pixel_data; //内存地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; //外设到内存 DMA_InitStructure.DMA_BufferSize = 38400; //数据大小 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //指定外设地址寄存器是否应增加或不 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; //指定内存地址寄存器是否应增加或不 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; //外设地址数据长度 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; //内存地址数据长度 DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; //运行模式 DMA_Mode_Normal DMA_Mode_Circular DMA_InitStructure.DMA_Priority = DMA_Priority_High; //优先模式 Low Medium High VeryHigh DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; //FIFO DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; //FIFO的阈值水平 DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; //内存单通道 DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; //外设单通道 DMA_Init(DMA2_Stream1, &DMA_InitStructure); }
这是dma dcmi的初始化。帮我看看这个哪里有问题了。
void DCMI_IRQHandler(void) { if (DCMI_GetITStatus(DCMI_IT_VSYNC) != RESET) //帧同步输入 { LCD_SetCursor(0,0); LCD_REG = 0x0022; if(count>0) count--; if(count == 0 ) { count = 15; flag = 1; DCMI_Cmd(DISABLE); DCMI_CaptureCmd(DISABLE); printf(" "); printf(" "); printf(" "); printf(" "); printf(" "); } DCMI_ClearITPendingBit(DCMI_IT_VSYNC); } if (DCMI_GetITStatus(DCMI_IT_LINE) != RESET) { DCMI_ClearITPendingBit(DCMI_IT_LINE); } if (DCMI_GetITStatus(DCMI_IT_FRAME) != RESET) //帧同步输入 { DCMI_ClearITPendingBit(DCMI_IT_FRAME); } if (DCMI_GetITStatus(DCMI_IT_ERR) != RESET) { DCMI_ClearITPendingBit(DCMI_IT_ERR); } }
这是中断函数。
加载中...
lcc8559
4楼-- · 2019-07-22 23:54
可以自己做相机了。
加载中...
zhanggenftf
5楼-- · 2019-07-23 05:45
mark!!
加载中...
lixupeng
6楼-- · 2019-07-23 11:19
好东东 mark
加载中...
上一页
1
2
3
4
5
6
7
8
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
/* DCMI Interrupts config ***************************************************/ DCMI_ITConfig(DCMI_IT_VSYNC, ENABLE); DCMI_ITConfig(DCMI_IT_LINE, ENABLE); DCMI_ITConfig(DCMI_IT_FRAME, ENABLE); DCMI_ITConfig(DCMI_IT_ERR, ENABLE); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = DCMI_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);
/* Configures the DMA2 to transfer Data from DCMI to the LCD ****************/ /* Enable DMA2 clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); /* DMA2 Stream1 Configuration */ DMA_DeInit(DMA2_Stream1);
DMA_InitStructure.DMA_Channel = DMA_Channel_1; //dma流通道 DMA_InitStructure.DMA_PeripheralBaseAddr = DCMI_DR_ADDRESS; //外设地址 DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&pixel_data; //内存地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; //外设到内存 DMA_InitStructure.DMA_BufferSize = 38400; //数据大小 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //指定外设地址寄存器是否应增加或不 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; //指定内存地址寄存器是否应增加或不 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; //外设地址数据长度 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; //内存地址数据长度 DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; //运行模式 DMA_Mode_Normal DMA_Mode_Circular DMA_InitStructure.DMA_Priority = DMA_Priority_High; //优先模式 Low Medium High VeryHigh DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; //FIFO DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; //FIFO的阈值水平 DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; //内存单通道 DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; //外设单通道 DMA_Init(DMA2_Stream1, &DMA_InitStructure); }
这是dma dcmi的初始化。帮我看看这个哪里有问题了。
void DCMI_IRQHandler(void) { if (DCMI_GetITStatus(DCMI_IT_VSYNC) != RESET) //帧同步输入 { LCD_SetCursor(0,0); LCD_REG = 0x0022; if(count>0) count--; if(count == 0 ) { count = 15; flag = 1; DCMI_Cmd(DISABLE); DCMI_CaptureCmd(DISABLE); printf(" "); printf(" "); printf(" "); printf(" "); printf(" "); } DCMI_ClearITPendingBit(DCMI_IT_VSYNC); } if (DCMI_GetITStatus(DCMI_IT_LINE) != RESET) { DCMI_ClearITPendingBit(DCMI_IT_LINE); } if (DCMI_GetITStatus(DCMI_IT_FRAME) != RESET) //帧同步输入 { DCMI_ClearITPendingBit(DCMI_IT_FRAME); } if (DCMI_GetITStatus(DCMI_IT_ERR) != RESET) { DCMI_ClearITPendingBit(DCMI_IT_ERR); } }
这是中断函数。
一周热门 更多>