注册 登录
查看: 551|回复: 20

[鹰眼] 我用的山外V5.0的DMA串口显示怎么没有图像呀

[复制链接]
发表于 2014-12-19 14:16:09 | 显示全部楼层 |阅读模式
硬件连接如下
D0-D7接单片机B0~B7
山外的库什么都没改动,硬件是这样接的
SCL接A26
SDA接A25
PLCK接A27
V接A29
H接A28
串口是UART3 就是C17,C16.
这些是不是按程序接的?我是按小底板原理图接的。就是没图像呀
不过用多功能调试助手V1.0的串口调试助手显示是有接受的。不过调到摄像头就没图像了
回复

使用道具 举报

发表于 2014-12-19 14:17:13 | 显示全部楼层
V5.0 是用YY摄像头上位机的。不是用多功能调试助手 V1.0
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:17:38 | 显示全部楼层
/*!
*     COPYRIGHT NOTICE
*     Copyright (c) 2013,山外科技
*     All rights reserved.
*     技术讨论:山外初学论坛 http://www.vcan123.com
*
*     除注明出处外,以下所有内容版权均属山外科技所有,未经允许,不得用于商业用途,
*     修改内容时必须保留山外科技的版权声明。
*
* @file       main.c
* @brief      山外K60 平台主程序
* @author     山外科技
* @version    v5.0
* @date       2013-08-28
*/

#include "common.h"
#include "include.h"
#include "math.h"

uint8 imgbuff[CAMERA_SIZE];                             //定义存储接收图像的数组
uint8 img[CAMERA_W*CAMERA_H];                           //由于鹰眼摄像头是一字节8个像素,因而需要解压为 1字节1个像素,方便处理

//函数声明
void sendimg(uint8 *imgaddr, uint32 imgsize);          //发送图像到上位机
void img_extract(uint8 *dst, uint8 *src, uint32 srclen);
void PORTA_IRQHandler();
void DMA0_IRQHandler();

/*!
*  @brief      main函数
*  @since      v5.0
*  @note       山外 DMA 采集摄像头 实验
                注意,此例程 bus频率设为100MHz(50MHz bus频率会太慢而导致没法及时采集图像)
*/
void  main(void)
{
    //初始化摄像头
    camera_init(imgbuff);

    //配置中断复位函数
    set_vector_handler(PORTA_VECTORn ,PORTA_IRQHandler);    //设置LPTMR的中断复位函数为 PORTA_IRQHandler
    set_vector_handler(DMA0_VECTORn ,DMA0_IRQHandler);      //设置LPTMR的中断复位函数为 PORTA_IRQHandler

    while(1)
    {
        //获取图像
        camera_get_img();                                   //摄像头获取图像

        //解压图像
        img_extract(img, imgbuff,CAMERA_SIZE);

        //发送图像到上位机
        sendimg(img, CAMERA_W * CAMERA_H);                  //发送到上位机
    }
}

/*!
*  @brief      发送图像到eSmartCameraCar上位机显示
*  @param      imgaddr         图像地址
*  @param      imgsize         图像占用空间大小
*  @since      v5.0
*  @note       不同的上位机,不同的命令,这里使用 eSmartCameraCar软件,
                如果使用其他上位机,则需要修改代码。
*  Sample usage:   sendimg(imgbuff, CAMERA_W * CAMERA_H);                    //发送到上位机
*/
void sendimg(uint8 *imgaddr, uint32 imgsize)
{
    uint8 cmd[4] = {0, 255, 1, 0 };    //yy_摄像头串口调试 使用的命令

    uart_putbuff(VCAN_PORT, cmd, sizeof(cmd));    //先发送命令

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

/*!
*  @brief      二值化图像解压(空间 换 时间 解压)
*  @param      dst             图像解压目的地址
*  @param      src             图像解压源地址
*  @param      srclen          二值化图像的占用空间大小
*  @since      v5.0            img_extract(img, imgbuff,CAMERA_SIZE);
*  Sample usage:   sendimg(imgbuff, CAMERA_W * CAMERA_H);                    //发送到上位机
*/
void img_extract(uint8 *dst, uint8 *src, uint32 srclen)
{
    uint8 colour[2] = {255, 0}; //0 和 1 分别对应的颜色
    //注:山外的摄像头 0 表示 白色,1表示 黑色
    uint8 tmpsrc;
    while(srclen --)
    {
        tmpsrc = *src++;
        *dst++ = colour[ (tmpsrc >> 7 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 6 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 5 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 4 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 3 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 2 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 1 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 0 ) & 0x01 ];
    }
}

/*!
*  @brief      PORTA中断服务函数
*  @since      v5.0
*/
void PORTA_IRQHandler()
{
    uint8  n = 0;    //引脚号
    uint32 flag = PORTA_ISFR;
    PORTA_ISFR  = ~0;                                   //清中断标志位

    n = 29;                                             //场中断
    if(flag & (1 << n))                                 //PTA29触发中断
    {
        camera_vsync();
    }
#if 0             //鹰眼直接全速采集,不需要行中断
    n = 28;
    if(flag & (1 << n))                                 //PTA28触发中断
    {
        camera_href();
    }
#endif
}

/*!
*  @brief      DMA0中断服务函数
*  @since      v5.0
*/
void DMA0_IRQHandler()
{
    camera_dma();
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:20:55 | 显示全部楼层
山外メ雲ジ 发表于 2014-12-19 14:17
V5.0 是用YY摄像头上位机的。不是用多功能调试助手 V1.0

山外哥,有链接吗?
回复 支持 反对

使用道具 举报

发表于 2014-12-19 14:22:04 | 显示全部楼层
山外鹰眼上位机显示图像 - 智能车资料区 - 山外论坛 http://www.vcan123.com/forum.php?mod=viewthread&tid=77&ctid=6
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:32:53 | 显示全部楼层
山外メ雲ジ 发表于 2014-12-19 14:22
山外鹰眼上位机显示图像 - 智能车资料区 - 山外论坛 http://www.vcan123.com/forum.php?mod=viewthread&tid ...

谢谢山外哥,不过显示的图像都是乱的,根本看不出来是啥

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2014-12-19 14:34:42 | 显示全部楼层
宇宙开拓 发表于 2014-12-19 14:32
谢谢山外哥,不过显示的图像都是乱的,根本看不出来是啥

要调焦距!!你这图像都没调焦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:39:36 | 显示全部楼层
tdyrnohbgs 发表于 2014-12-19 14:34
要调焦距!!你这图像都没调焦

调焦距是不是要先把那个螺丝拧松?我小白,求教
回复 支持 反对

使用道具 举报

发表于 2014-12-19 14:42:37 | 显示全部楼层
宇宙开拓 发表于 2014-12-19 14:39
调焦距是不是要先把那个螺丝拧松?我小白,求教

是啊,不然镜头旋转不了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:51:03 | 显示全部楼层
tdyrnohbgs 发表于 2014-12-19 14:42
是啊,不然镜头旋转不了。

还是不行呀,从最短转到最长都是乱的
回复 支持 反对

使用道具 举报

发表于 2014-12-19 14:52:51 | 显示全部楼层
宇宙开拓 发表于 2014-12-19 14:51
还是不行呀,从最短转到最长都是乱的

你对着赛道拍照片吗?一定要对着赛道这些明显的地方来调。
回复 支持 反对

使用道具 举报

发表于 2014-12-19 14:53:33 | 显示全部楼层
另外,你的图案好像错位了,按这里来修复。

改了底层后解决了图像卡住的问题(错位问题) - 智能车讨论区 - 山外论坛 http://www.vcan123.com/forum.php ... tid=4363&ctid=6
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:53:45 | 显示全部楼层
tdyrnohbgs 发表于 2014-12-19 14:52
你对着赛道拍照片吗?一定要对着赛道这些明显的地方来调。

同一个位置不动的话,上面黑白感觉都是任意变化的
回复 支持 反对

使用道具 举报

发表于 2014-12-19 14:54:23 | 显示全部楼层
宇宙开拓 发表于 2014-12-19 14:53
同一个位置不动的话,上面黑白感觉都是任意变化的

是不是白光灯干扰,导致闪烁啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:58:49 | 显示全部楼层
山外メ雲ジ 发表于 2014-12-19 14:22
山外鹰眼上位机显示图像 - 智能车资料区 - 山外论坛 http://www.vcan123.com/forum.php?mod=viewthread&tid ...

山外哥,帮我看一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 15:01:00 | 显示全部楼层
tdyrnohbgs 发表于 2014-12-19 14:54
是不是白光灯干扰,导致闪烁啊?

我关灯了还是不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 15:07:26 | 显示全部楼层
tdyrnohbgs 发表于 2014-12-19 14:54
是不是白光灯干扰,导致闪烁啊?

接硬件的时候是不是哪个管脚要上拉或者下拉电阻?
回复 支持 反对

使用道具 举报

发表于 2014-12-19 16:54:00 | 显示全部楼层
宇宙开拓 发表于 2014-12-19 15:07
接硬件的时候是不是哪个管脚要上拉或者下拉电阻?

场中断和PCLK 要接下拉 150欧的电阻。不然图像会闪烁跳转
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 17:00:59 | 显示全部楼层
仰逸致 发表于 2014-12-19 16:54
场中断和PCLK 要接下拉 150欧的电阻。不然图像会闪烁跳转

500欧姆可以吗?暂时没150的
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-12-19 17:28:28 | 显示全部楼层
宇宙开拓 发表于 2014-12-19 17:00
500欧姆可以吗?暂时没150的

不行的,150欧左右,多了少了都不行。
回复 支持 反对

使用道具 举报

发表于 2014-12-19 17:28:58 | 显示全部楼层
宇宙开拓 发表于 2014-12-19 17:00
500欧姆可以吗?暂时没150的

没有的话,用滑动变阻器,万用表测一个出来
回复 支持 反对

使用道具 举报

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

本版积分规则

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