標題: 關(guān)于stm32mini實現(xiàn)拍照功能 [打印本頁]

作者: 瘋子本人    時間: 2019-9-30 17:29
標題: 關(guān)于stm32mini實現(xiàn)拍照功能
本帖最后由 瘋子本人 于 2019-10-3 16:47 編輯

想用mini板實現(xiàn)照相機功能,將一些文件添加好了之后,發(fā)現(xiàn)出現(xiàn)了問題,報錯是出現(xiàn)在寫入文件錯誤這里,跟進去之后發(fā)現(xiàn)這個if(res==FR_OK)沒進去,對此有點疑惑,搞不清是哪里出問題了,特此來尋求各位的幫助。以下是程序

整個文件沒報錯,初始化也成功了,ov7670攝像頭也可以拍照,但是就是用bmp截屏的時候會出現(xiàn)錯誤,有大佬幫忙解答一下嗎(用的是ov7670攝像頭與stm32mini板),是bmp函數(shù)出現(xiàn)問題了嗎,可是是從其他例程直接移植過來的呀,求救求救

單片機源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"  
  3. #include "delay.h"
  4. #include "led.h"   
  5. #include "lcd.h"
  6. #include "usmart.h"
  7. #include "ff.h"  
  8. #include "flash.h"
  9. #include "exfuns.h"   
  10. #include "text.h"
  11. #include "piclib.h"
  12. #include "string.h"  
  13. #include "math.h"  
  14. #include "ov7670.h"
  15. #include "exti.h"
  16. #include "timer.h"
  17. #include "stm32f10x.h"
  18. #include "key.h"  
  19. #include "malloc.h"
  20. //ALIENTEK Mini STM32開發(fā)板擴展實驗9

  21. extern u8 ov_sta; //在exit.c里面定義
  22. extern u8 ov_frame; //在timer.c里面定義  
  23. FRESULT res_sd;//文件操作結(jié)果
  24. FIL fnew; //文件對
  25. UINT fnum; //文件成功讀寫數(shù)量
  26. //更新LCD顯示
  27. void camera_refresh(void)
  28. {
  29. u32 j;
  30.   u16 color;  
  31. if(ov_sta==2)
  32. {
  33.   LCD_Scan_Dir(U2D_L2R);  //從上到下,從左到右
  34.   LCD_SetCursor(0x00,0x0000); //設(shè)置光標位置
  35.   LCD_WriteRAM_Prepare();     //開始寫入GRAM
  36.    OV7670_CS=0;  
  37.    OV7670_RRST=0;    //開始復(fù)位讀指針
  38.   OV7670_RCK=0;
  39.   OV7670_RCK=1;
  40.   OV7670_RCK=0;
  41.   OV7670_RRST=1;    //復(fù)位讀指針結(jié)束
  42.   OV7670_RCK=1;  
  43.   for(j=0;j<76800;j++)
  44.   {
  45.    GPIOB->CRL=0X88888888;     
  46.    OV7670_RCK=0;
  47.    color=OV7670_DATA;  //讀數(shù)據(jù)
  48.    OV7670_RCK=1;  
  49.    color<<=8;      
  50.     OV7670_RCK=0;
  51.    color|=OV7670_DATA;  //讀數(shù)據(jù)   
  52.    OV7670_RCK=1;
  53.    GPIOB->CRL=0X33333333;         
  54.    LCD_WR_DATA(color);  
  55.   }  
  56.    OV7670_CS=1;         
  57.   OV7670_RCK=0;
  58.   OV7670_RCK=1;
  59.   EXTI->PR=1<<15;       //清除LINE8上的中斷標志位
  60.   ov_sta=0;     //開始下一次采集
  61.    ov_frame++;
  62.   LCD_Scan_Dir(DFT_SCAN_DIR); //恢復(fù)默認掃描方向           
  63. }
  64. }
  65. //文件名自增(避免覆蓋)
  66. //組合成:形如"0:PHOTO/PIC13141.bmp"的文件名
  67. void camera_new_pathname(u8 *pname)
  68. {  
  69. u8 res;      
  70. u16 index=0;
  71. while(index<0XFFFF)
  72. {
  73.   sprintf((char*)pname,"0:PHOTO/PIC%05d.bmp",index);
  74.   res=f_open(ftemp,(const TCHAR*)pname,FA_READ);//嘗試打開這個文件
  75.   if(res==FR_NO_FILE)break;  //該文件名不存在=正是我們需要的.
  76.   index++;
  77. }
  78. }

復(fù)制代碼




&amp;sup2;&amp;para;&amp;raquo;&amp;ntilde;111.PNG (10.59 KB, 下載次數(shù): 156)

&amp;sup2;&amp;para;&amp;raquo;&amp;ntilde;111.PNG

&amp;sup2;&amp;para;&amp;raquo;&amp;ntilde;.PNG (11.56 KB, 下載次數(shù): 154)

&amp;sup2;&amp;para;&amp;raquo;&amp;ntilde;.PNG

作者: 瘋子本人    時間: 2019-10-3 16:48
找到原因了,在網(wǎng)上找了好久的資料,發(fā)現(xiàn)還是只能靠自己啊哈哈哈哈哈
作者: 我去啥也不會啊    時間: 2019-10-27 15:01
瘋子本人 發(fā)表于 2019-10-3 16:48
找到原因了,在網(wǎng)上找了好久的資料,發(fā)現(xiàn)還是只能靠自己啊哈哈哈哈哈

樓主代碼能發(fā)一下嗎
作者: 瘋子本人    時間: 2020-1-23 22:34
我去啥也不會啊 發(fā)表于 2019-10-27 15:01
樓主代碼能發(fā)一下嗎

過了那么久,想必你也解決了吧,當(dāng)時的問題是文件創(chuàng)建的問題,加了幾句代碼就實現(xiàn)了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1