找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3660|回复: 2
打印 上一主题 下一主题
收起左侧

stm32+ov7725上传PC的源程序

[复制链接]
跳转到指定楼层
楼主
ID:508813 发表于 2019-4-10 15:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
能够实现将ov7725的图像上传到上位机,上位机使用原子带的就行,速度比较慢

单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "./ov7725/ov7725.h"
  3. #include "./lcd/ili9341_lcd.h"
  4. #include "./usart/usart.h"
  5. #include "./systick/SysTick.h"

  6. extern uint8_t Ov7725_vsync;

  7. uint64_t Task_Delay = 20000;

  8. extern OV7725_MODE_PARAM cam_mode;

  9. int main(void)        
  10. {               
  11.        
  12. //        float frame_count = 0;
  13.         uint8_t retry = 0;
  14. //        uint16_t x,y;

  15.         /* 液晶初始化 */
  16. //        ILI9341_Init();
  17. //        ILI9341_GramScan ( 3 );
  18.        
  19. //        LCD_SetFont(&Font8x16);
  20. //        LCD_SetColors(WHITE,BLACK);

  21. //  ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        /* 清屏,显示全黑 */
  22.        
  23.         /********显示字符串示例*******/
  24. //  ILI9341_DispStringLine_EN(LINE(0),"BH OV7725 Test Demo");

  25.         USART_Config();
  26.         SysTick_Init();
  27.         /* ov7725 gpio 初始化 */
  28.         OV7725_GPIO_Config();
  29.        
  30.         /* ov7725 寄存器默认配置初始化 */
  31.         while(OV7725_Init() != SUCCESS)
  32.         {
  33.                 retry++;
  34.                 if(retry>5)
  35.                 {
  36. //                        printf("\r\n没有检测到OV7725摄像头\r\n");
  37. //                        ILI9341_DispStringLine_EN(LINE(2),"No OV7725 module detected!");
  38.                         while(1);
  39.                 }
  40.         }


  41.         /*根据摄像头参数组配置模式*/
  42.         OV7725_Special_Effect(cam_mode.effect);
  43.         /*光照模式*/
  44.         OV7725_Light_Mode(cam_mode.light_mode);
  45.         /*饱和度*/
  46.         OV7725_Color_Saturation(cam_mode.saturation);
  47.         /*光照度*/
  48.         OV7725_Brightness(cam_mode.brightness);
  49.         /*对比度*/
  50.         OV7725_Contrast(cam_mode.contrast);
  51.         /*特殊效果*/
  52.         OV7725_Special_Effect(cam_mode.effect);
  53.        
  54.         /*设置图像采样及模式大小*/
  55.         OV7725_Window_Set(cam_mode.cam_sx,
  56.                                                                                                                 cam_mode.cam_sy,
  57.                                                                                                                 cam_mode.cam_width,
  58.                                                                                                                 cam_mode.cam_height,
  59.                                                                                                                 cam_mode.QVGA_VGA);

  60.         /* 设置液晶扫描模式 */
  61. //        ILI9341_GramScan( cam_mode.lcd_scan );
  62.        
  63.        
  64.        
  65. //        ILI9341_DispStringLine_EN(LINE(2),"OV7725 initialize success!");
  66.        
  67.         Ov7725_vsync = 0;
  68.        
  69.         while(1)
  70.         {
  71.                         /*接收到新图像进行显示*/
  72.                         if( Ov7725_vsync == 2 )
  73.                         {
  74. //                        frame_count++;
  75.                                 FIFO_PREPARE;                          /*FIFO准备*/               
  76.                                 /*60秒采集一帧图像通过串口1发送出去*/
  77.                                 if(Task_Delay == 0)        
  78.                                 {                       
  79.                                         while(SUCCESS != ImagCatch(cam_mode.lcd_sx,
  80.                                                                          cam_mode.lcd_sy,
  81.                                                                          cam_mode.cam_width,
  82.                                                                          cam_mode.cam_height));                        /*采集并显示,等待串口1图像数据发送完成,*/  

  83.                                         Task_Delay = 60000;       
  84.                                 }       
  85.                                 Ov7725_vsync = 0;                                       
  86.                         }
  87.         }
  88. }
  89.                 /*每隔一段时间计算一次帧率*/
  90. //                if(Task_Delay == 0)  
  91. //                {                       
  92. //                        printf("\r\nframe_ate = %.2f fps\r\n",frame_count/10);     //计算帧率
  93. //                        frame_count = 0;                                                                                                                                                                         //帧数清零
  94. //                        Task_Delay = 10000;                                                                                                                                                                 //10秒定时中断
  95. //                }               
复制代码

所有资料51hei提供下载:
基于OV7725的stm32实时图像采集工程.7z (210.91 KB, 下载次数: 115)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:463721 发表于 2019-4-14 11:45 | 只看该作者
请问这个用什么通信方式?
回复

使用道具 举报

板凳
ID:463721 发表于 2019-4-14 11:47 | 只看该作者
请问PC和STM32通过什么通信
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表