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

[鹰眼] 通过串口接收不到图像

[复制链接]
发表于 2014-3-6 16:52:57 | 显示全部楼层 |阅读模式
鹰眼例程里边找不到串口初始化语句,只有接收发送函数
回复

使用道具 举报

发表于 2014-3-6 17:11:57 | 显示全部楼层
你好,printf函数是进入main函数前已经初始化了,见我们的K60视频讲解。

串口助手能不能收发数据?默认是没有串口发送图像的哦,注释掉了,需要取消注释
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-6 19:42:58 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-6 17:11
你好,printf函数是进入main函数前已经初始化了,见我们的K60视频讲解。

串口助手能不能收发数据?默认是 ...

今天刚把液晶屏接上,除了能显示背景颜色(红色)之外,摄像头采集的二值化图像什么也看不见
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-6 19:43:14 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-6 17:11
你好,printf函数是进入main函数前已经初始化了,见我们的K60视频讲解。

串口助手能不能收发数据?默认是 ...

今天刚把液晶屏接上,除了能显示背景颜色(红色)之外,摄像头采集的二值化图像什么也看不见
回复 支持 反对

使用道具 举报

发表于 2014-3-6 20:26:05 | 显示全部楼层
TD烟火 发表于 2014-3-6 19:43
今天刚把液晶屏接上,除了能显示背景颜色(红色)之外,摄像头采集的二值化图像什么也看不见

有可能是鹰眼初始化失败(接错线或接触不良),有可能是采集失败。
你在线仿真调试,看看程序卡在哪里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-7 11:28:51 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-6 20:26
有可能是鹰眼初始化失败(接错线或接触不良),有可能是采集失败。
你在线仿真调试,看看程序卡在哪里

现在的问题是串口接收到一场图像之后,就接收不到图像了;我把摄像头初始化函数camera_init(imgbuff);放到while(1)里边,图像就可以连续采集了,什么问题。
回复 支持 反对

使用道具 举报

发表于 2014-3-7 11:43:34 | 显示全部楼层
TD烟火 发表于 2014-3-7 11:28
现在的问题是串口接收到一场图像之后,就接收不到图像了;我把摄像头初始化函数camera_init(imgbuff);放到 ...

有可能是频率过高导致不稳定,你降低K60的频率试试。

初始化只需要一次的,你不要把初始化放在while循环,然后单步调试,看看程序卡死在哪里。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-7 13:39:58 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-7 11:43
有可能是频率过高导致不稳定,你降低K60的频率试试。

初始化只需要一次的,你不要把初始化放在while循 ...

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了
回复 支持 反对

使用道具 举报

发表于 2014-3-7 13:46:29 来自手机 | 显示全部楼层
TD烟火 发表于 2014-3-7 13:39:58

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了

今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过
回复 支持 反对

使用道具 举报

发表于 2014-3-7 13:46:33 来自手机 | 显示全部楼层
TD烟火 发表于 2014-3-7 13:39:58

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了

今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过
回复 支持 反对

使用道具 举报

发表于 2014-3-7 13:46:37 来自手机 | 显示全部楼层
TD烟火 发表于 2014-3-7 13:39:58

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了

今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过
回复 支持 反对

使用道具 举报

发表于 2014-3-7 13:46:37 来自手机 | 显示全部楼层
TD烟火 发表于 2014-3-7 13:39:58

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了

今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过
回复 支持 反对

使用道具 举报

发表于 2014-3-7 13:46:38 来自手机 | 显示全部楼层
TD烟火 发表于 2014-3-7 13:39:58

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了

今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过
回复 支持 反对

使用道具 举报

发表于 2014-3-7 13:46:39 来自手机 | 显示全部楼层
TD烟火 发表于 2014-3-7 13:39:58

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了

今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过
回复 支持 反对

使用道具 举报

发表于 2014-3-7 13:47:28 来自手机 | 显示全部楼层
TD烟火 发表于 2014-3-7 13:39:58

单步调试没问题,也卡不住,能一直执行;就是图像只发了一场,其他的貌似就发不过来了

今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-7 13:56:58 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-7 13:47
今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过

谢谢啊,我看了你们的视频,操作完全是一样的程序我也没改过,但是不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-7 14:03:43 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-7 13:46
今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过

还有就是接收到一场图像之后,把单片机复位,会再接收一场图像;所以我当初考虑是初始化的问题,把初始化函数放到while里边,就可以连续采集了;至于你说的那个系统频率,我把频率从50,调到30,依然没有效果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-7 14:16:28 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-7 13:46
今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过

测试了几次之后,我发现可能是串口发送函数里边有一个void uart_putchar (UARTn_e uratn, char ch)
{
    //等待发送缓冲区空
    while(!(UART_S1_REG(UARTN[uratn]) & UART_S1_TDRE_MASK));

    //发送数据
    UART_D_REG(UARTN[uratn]) = (uint8)ch;
}
感觉是缓冲区一直没有清空,导致的这个问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-7 14:24:42 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-7 13:47
今晚我帮你在线调试看看吧,应该是系统频率设置问题,我们之前也遇到过

自己调试好了,就是数据采集完之后,没有及时清空缓存,   while(1)
    {
     
        //获取图像
        camera_get_img();                                   //摄像头获取图像

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

        //发送图像到上位机
        sendimg(img, CAMERA_W * CAMERA_H);                  //发送到上位机
        *imgbuff=0;         //清空数据缓存
    }
}
回复 支持 反对

使用道具 举报

发表于 2014-3-7 20:24:45 | 显示全部楼层
TD烟火 发表于 2014-3-7 14:24
自己调试好了,就是数据采集完之后,没有及时清空缓存,   while(1)
    {
     

是不需要清空缓存的啊,直接覆盖数据就行了。你的这么怪啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-7 21:46:53 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-7 20:24
是不需要清空缓存的啊,直接覆盖数据就行了。你的这么怪啊

不会吧,现在的问题肯定是这一块的问题了,至于到底怎么回事,等在调试之后再说吧,总之谢谢你了
回复 支持 反对

使用道具 举报

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

本版积分规则

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