注册 登录
查看: 17121|回复: 75

[摄像头组] 【山外摄像头】鹰眼上位机例程和微焦效果

  [复制链接]
发表于 2014-9-24 10:38:46 | 显示全部楼层 |阅读模式
直接上拍摄 快递单好的字体效果:



这个是60度镜头,80*60效果


这个是60度镜头,320*240效果


90度镜头,320*240效果


上位机的例程,其实就是vcan_sendimg函数,先发送命令头,再发送数据,最后发送命令尾。

  1. uint8 imgbuff[CAMERA_SIZE];                             //定义存储接收图像的数组
  2. uint8 img[CAMERA_W*CAMERA_H];

  3. //函数声明
  4. void PORTA_IRQHandler();
  5. void DMA0_IRQHandler();
  6. void vcan_sendimg(uint8 *imgaddr, uint32 imgsize);

  7. /*!
  8. *  @brief      main函数
  9. *  @since      v5.0
  10. *  @note       野火摄像头 LCD 测试实验
  11. */
  12. void  main(void)
  13. {
  14.     Site_t site     = {0, 0};                           //显示图像左上角位置
  15.     Size_t imgsize  = {CAMERA_W, CAMERA_H};             //图像大小
  16.     Size_t size;                   //显示区域图像大小

  17.     gpio_init(PTA4,GPO,1);

  18.     LCD_init();
  19.     LCD_str            (site,"Cam init ing",FCOLOUR,BCOLOUR);

  20.     size.H = LCD_H;
  21.     size.W = LCD_W;

  22.     camera_init(imgbuff);

  23.     LCD_str            (site,"Cam init OK!",FCOLOUR,BCOLOUR);
  24.     //配置中断复位函数
  25.     set_vector_handler(PORTA_VECTORn , PORTA_IRQHandler);   //设置LPTMR的中断复位函数为 PORTA_IRQHandler
  26.     set_vector_handler(DMA0_VECTORn , DMA0_IRQHandler);     //设置LPTMR的中断复位函数为 PORTA_IRQHandler

  27.     while(1)
  28.     {
  29.         camera_get_img();                                   //摄像头获取图像

  30.         LCD_Img_Binary_Z(site, size, imgbuff, imgsize);     //黑白摄像头
  31.         vcan_sendimg(imgbuff,CAMERA_SIZE);
  32.     }
  33. }


  34. /*!
  35. *  @brief      PORTA中断服务函数
  36. *  @since      v5.0
  37. */
  38. void PORTA_IRQHandler()
  39. {
  40.     uint8  n;    //引脚号
  41.     uint32 flag;

  42.     while(!PORTA_ISFR);
  43.     flag = PORTA_ISFR;
  44.     PORTA_ISFR  = ~0;                                   //清中断标志位

  45.     n = 29;                                             //场中断
  46.     if(flag & (1 << n))                                 //PTA29触发中断
  47.     {
  48.         camera_vsync();
  49.     }
  50. }

  51. /*!
  52. *  @brief      DMA0中断服务函数
  53. *  @since      v5.0
  54. */
  55. void DMA0_IRQHandler()
  56. {
  57.     camera_dma();
  58. }

  59. //发送图像到上位机显示
  60. //不同的上位机,不同的命令
  61. //如果使用其他上位机,则需要修改代码
  62. void vcan_sendimg(uint8 *imgaddr, uint32 imgsize)
  63. {
  64. #define CMD_IMG     1
  65.     uint8 cmdf[2] = {CMD_IMG, ~CMD_IMG};    //山外上位机 使用的命令
  66.     uint8 cmdr[2] = {~CMD_IMG, CMD_IMG};    //山外上位机 使用的命令

  67.     uart_putbuff(VCAN_PORT, cmdf, sizeof(cmdf));    //先发送命令

  68.     uart_putbuff(VCAN_PORT, imgaddr, imgsize); //再发送图像

  69.     uart_putbuff(VCAN_PORT, cmdr, sizeof(cmdr));    //先发送命令
  70. }


上位机下载:
【多功能调试助手V1.0】串口、摄像头、GSM... - 一天攻破K60 - 山外-vcan123论坛
http://vcan123.com/thread-5988-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 2互助 +2 收起 理由
帅比凯 + 1 很给力!
九灵元圣 + 1 赞一个!

查看全部评分

本帖被以下淘专辑推荐: