久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6933|回復: 4
打印 上一主題 下一主題
收起左側(cè)

stm32F4+OV2640圖像rgb轉(zhuǎn)yuv轉(zhuǎn)二值化DMA傳輸源碼

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:291662 發(fā)表于 2018-3-14 10:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
MCU:STM32F407攝像頭:OV2640
處理方法:rgb轉(zhuǎn)yuv轉(zhuǎn)二值化圖
數(shù)據(jù)傳輸:DMA

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"
  6. #include "lcd.h"
  7. #include "usmart.h"  
  8. #include "usart2.h"  
  9. #include "timer.h"
  10. #include "ov2640.h"
  11. #include "dcmi.h"
  12. #define jpeg_buf_size 31*1024                          //定義JPEG數(shù)據(jù)緩存jpeg_buf的大小(*4字節(jié))
  13. u32 black=0,white=0;
  14. float  precent;
  15. u16  ov2640_mode=0,i=0,cnt,threshold=60,line;                                                //工作模式:0,RGB565模式;1,JPEG模式
  16. __align(4) u32 jpeg_buf[jpeg_buf_size];        //JPEG數(shù)據(jù)緩存buf
  17. volatile u32 jpeg_data_len=0;                         //buf中的JPEG有效數(shù)據(jù)長度
  18. volatile u8 jpeg_data_ok=0;                                //JPEG數(shù)據(jù)采集完成標志
  19. u16 fps[320];
  20. u16 yuv[320];

  21. u16 yuv422_y_to_bitmap(u8 threshold,u16 yuv422)
  22. {
  23.         u8 temp;        //用于儲存yuv422格式數(shù)據(jù)中的亮度值Y量
  24.         temp = (u8)(yuv422>>8);//把yuv422格式數(shù)據(jù)中的亮度值Y量提取出來賦值給temp變量(Y值在高字節(jié),根據(jù)OV2640寄存器設(shè)置決定)
  25.         if(temp >= threshold)//如果,Y值 大于等于閥值
  26.         {
  27.         //白
  28.                 return 1;
  29.         }
  30.         else
  31.         {        //黑
  32.                 return 0;
  33.         }
  34. }

  35. //中斷處理函數(shù)
  36. void DCMI_IRQHandler(void)
  37. {
  38.         if(DCMI_GetITStatus(DCMI_IT_FRAME)==SET)//捕獲到一幀圖像
  39.         {
  40.                 DCMI_ClearITPendingBit(DCMI_IT_FRAME);//清除幀中斷
  41.                 LED1=!LED1;
  42.                 precent=((black/1.0)/((black/1.0+white/1.0)))*100;
  43.                 USART_SendData(USART1,precent);
  44.                 black=0;white=0;       
  45.           DCMI_Start();                 //啟動傳輸
  46.                 DCMI_CaptureCmd(ENABLE);
  47.         }
  48.         if (DCMI_GetITStatus(DCMI_IT_LINE) != RESET)//DCMI_ITConfig(DCMI_IT_LINE, ENABLE);
  49.   {
  50.     DCMI_ClearITPendingBit(DCMI_IT_LINE);
  51.                 for(i=0;i<320;i++)
  52.                 {
  53.                         cnt=yuv422_y_to_bitmap(threshold,fps[i]);
  54.                         if(cnt==1)
  55.                         {
  56.                                 white++;
  57.                                 LCD->LCD_RAM=0xffff;
  58.                         }
  59.                         else
  60.                         {
  61.                                 LCD->LCD_RAM=0x0000;
  62.                           black++;
  63.                         }
  64.                 }
  65.   }
  66. }
  67. //RGB565測試
  68. //RGB數(shù)據(jù)直接顯示在LCD上面
  69. void yuv_test(void)
  70. {
  71.   u8 key;       
  72.         LCD_Clear(WHITE);
  73.   POINT_COLOR=RED;
  74.         OV2640_YUV422_Mode();        //RGB565模式
  75.         My_DCMI_Init();                        //DCMI配置
  76.         DCMI_DMA_Init((u32)fps,320,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Enable);//DCMI DMA配置  
  77.         OV2640_OutSize_Set(lcddev.width,lcddev.height);
  78.         DCMI_Start();                 //啟動傳輸
  79.         while(1)
  80.         {
  81.                         key=KEY_Scan(1); //按鍵掃描函數(shù)
  82.                         if(key)
  83.                         {
  84.                                 switch(key)
  85.                                 {                                    
  86.                                         case WKUP_PRES:        //閥值+1
  87.                                                 threshold++;break;
  88.                                         case KEY1_PRES:        //閥值-1
  89.                                                 threshold--;break;
  90.                                 }
  91.                         }       
  92.         }   
  93. }
  94. int main(void)
  95. {
  96.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
  97.         delay_init(168);  //初始化延時函數(shù)
  98.         uart_init(115200);                //初始化串口波特率為115200
  99.         usart2_init(42,115200);                //初始化串口2波特率為115200
  100.         LED_Init();                                        //初始化LED
  101.         LCD_Init();                                        //LCD初始化  
  102.         KEY_Init();                                        //按鍵初始化
  103.         TIM3_Int_Init(10000-1,8400-1);//10Khz計數(shù),1秒鐘中斷一次
  104.         usmart_dev.init(84);                //初始化USMART
  105.         POINT_COLOR=RED;//設(shè)置字體為紅色  
  106.         while(OV2640_Init())//初始化OV2640
  107.         {
  108.                 LCD_ShowString(30,130,240,16,16,"OV2640 ERR");
  109.                 delay_ms(200);
  110.           LCD_Fill(30,130,239,170,WHITE);
  111.                 delay_ms(200);
  112.         }          
  113.         while(1)
  114.         {       
  115.     yuv_test();
  116.         }               
  117. }
  118.        
復制代碼

所有資料51hei提供下載:
攝像頭實驗.rar (590.69 KB, 下載次數(shù): 134)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:273692 發(fā)表于 2018-5-17 15:41 | 只看該作者
程序出現(xiàn)了3分屏啊,且屏幕利用率低啊
回復

使用道具 舉報

板凳
ID:510730 發(fā)表于 2019-5-8 17:04 | 只看該作者
這個程序是怎么用一個循環(huán)掃完所有點的,我想得到所有黑點的坐標,可是我只找到一個循環(huán),找不到橫縱坐標
回復

使用道具 舉報

地板
ID:370706 發(fā)表于 2019-7-21 16:23 | 只看該作者
學習下
回復

使用道具 舉報

5#
ID:590012 發(fā)表于 2019-8-5 16:03 | 只看該作者
aaaa1254 發(fā)表于 2018-5-17 15:41
程序出現(xiàn)了3分屏啊,且屏幕利用率低啊

你解決這個問題了  可以教教我不
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久草视频观看 | 久久久久国产精品午夜一区 | 国产日韩欧美激情 | 国产一区 | 日韩精品久久久 | 精品亚洲一区二区三区 | 国产精品久久久久无码av | 成人三级视频 | 欧美中文在线 | 91 在线 | 成人免费小视频 | 999免费视频 | 69福利影院 | 农村真人裸体丰满少妇毛片 | 日本一区二区三区免费观看 | av官网在线 | 亚洲国产欧美国产综合一区 | 一级片免费视频 | 高清人人天天夜夜曰狠狠狠狠 | 亚洲精品1区 | 91麻豆产精品久久久久久 | 91精品国产一区二区三区 | 欧美一区二区三区视频在线观看 | 一级特黄色毛片 | 91色综合 | 欧美日韩久久精品 | 91精品国产91久久久久久最新 | 一级黄色毛片免费 | 午夜视频网站 | 亚洲福利一区 | 91亚洲精品国偷拍自产在线观看 | 一区二区三区四区五区在线视频 | 美国一级黄色片 | 成人免费在线 | 国产日韩视频在线 | 国产黄色大片在线免费观看 | 精品久久久久久国产 | 欧美一区二区在线 | 午夜久久久 | 午夜在线小视频 | 国产欧美在线观看 |