采用STM407實現攝像頭OV2640獲取圖片數據,通過TCP網絡上傳顯示。圖片最大分辨率1600*1200,這個分辨率下大概能實現每秒1~2幀左右的傳輸,速度還可以.原始工程文件,配合BOOTLOAD應用,如果不用BOOTLOAD,可以修改起始地址,直接下載應用。
單片機源程序如下:
- /* Includes ------------------------------------------------------------------*/
- #include "main.h"
- /** @addtogroup Template_Project
- * @{
- */
- /* Private typedef -----------------------------------------------------------*/
- /* Private define ------------------------------------------------------------*/
- /* Private macro -------------------------------------------------------------*/
- /* Private variables ---------------------------------------------------------*/
- extern void vTestUartSend(void);
- extern void LwIP_Periodic_Handle(__IO uint32_t localtime);
- u32 u32_mark_debug = 0;
- extern __IO uint32_t LocalTime;
- extern unsigned char gu8NetRecMark;
- extern void fudp_init(void);
- extern void LwIP_Init(void);
- extern void vDcmiDataInit(void);
- extern void frame_deal(void);
- extern void LwIP_Periodic_Handle(__IO uint32_t localtime);
- extern void vDcmi_Set_Start(void);
- extern void init_sysparameter_set(void);
- extern void vNetTimeTask(void);
- //extern static void SystemInit_ExtMemCtl(void);
- /* Private functions ---------------------------------------------------------*/
- /**
- * @brief Main program
- * @param None
- * @retval None
- */
- int main(void)
- {
- System_Setup();
- init_sysparameter_set();
- while(OV2640_Init())
- {
- Delay(200);
- }
- LwIP_Init();
- fudp_init();
- //vDcmiDataInit();
- /* Infinite loop */
- //vDcmi_Set_Start();//STM32F40_41xxx1
- //SystemInit_ExtMemCtl();
- while (1)
- {
- vPictureEndDeal();
- vCmdUartDeal();
- Led_Status_Handle();
- vNetTimeTask();
- frame_deal();
- LwIP_Periodic_Handle(LocalTime);
- }
- }
- /**
- * @brief Inserts a delay time.
- * @param nTime: specifies the delay time length, in milliseconds.
- * @retval None
- */
- void Delay(uint32_t nTime)
- {
- uint32_t u32TimePara = LocalTime + nTime;
- while(u32TimePara>LocalTime);
- }
- void Led_Status_Handle(void)
- {
- u32_mark_debug++;
- if((u32_mark_debug>1000000)&&(u32_mark_debug<2000000))
- {
- GPIO_SetBits(GPIOB,GPIO_Pin_12);//
- GPIO_ResetBits(GPIOB,GPIO_Pin_13);//
- u32_mark_debug = 3000000;
- //delay_us(500);
- //vTestUartSend();
- }
- else if((u32_mark_debug>4000000)&&(u32_mark_debug<5000000)){
- GPIO_SetBits(GPIOB,GPIO_Pin_13);//復位結束
- GPIO_ResetBits(GPIOB,GPIO_Pin_12);//
- u32_mark_debug = 0;
- /* Write the descriptor through the endpoint */
- //USB_SIL_Write(EP1_IN, (uint8_t*) u8_lin, 2);
- }
- }
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
復制代碼
所有資料51hei提供下載:
LIWP DCMI.rar
(12.04 MB, 下載次數: 166)
2018-1-11 22:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|