野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26542|回复: 13

合并照相机例程与USB模拟U盘例程出现不知名的问题!!!

[复制链接]
发表于 2014-4-30 18:48:28 | 显示全部楼层 |阅读模式
我试着合并了照相机例程(我直接从FIFO读取一帧图像的数据到SD卡,不经过LCD截屏,这一环节是没错误的,而且我也把与LCD有关的.c文件移出工程了)与USB模拟U盘例程,但是两个例程原本的功能不能同时使用,每次只能注释掉其中一个例程的功能,另一个例程的功能才能用。
不是工程建立的问题,文件包含路径没错的,我怀疑是NVIC的配置起冲突了。           现在两个例程的各个中断的优先级配置为:拍照例程的:1、SDIO中断(抢占优先级0,响应优先级2);2、OV7725场中断(抢占优先级0,响应优先级3),;拍照按键中断(抢占优先级0,响应优先级1),原例程就是这么配的。            USB例程的:1、SDIO中断(抢占优先级0,响应优先级2);2、USB低优先级中断(抢占优先级1,响应优先级1);3、USB高优先级中断( 抢占优先级1,响应优先级0),原例程SDIO中断为(抢占优先级0,响应优先级0)。            它们都是采用优先级组1的。
另外,我也怀疑是拍照例程当中的初始化sd卡文件系统的函数Sd_fs_init()与USB例程当中的初始化SD卡函数Set_System()起冲突了,如果真的是这两个函数起冲突了,那就麻烦了,求解答~~~~!!!!麻烦大家了~~~~!!!!
回复

使用道具 举报

 楼主| 发表于 2014-4-30 18:54:01 | 显示全部楼层
我想实现的功能就是,用一个手机充电器给开发板供电,并在这时候进行拍照,然后把USB先从手机充电器那里拔出,插到电脑上,此时应该要检测到U盘,从而在电脑上进入该U盘查看刚刚拍的照片。
回复 支持 反对

使用道具 举报

发表于 2014-4-30 19:04:40 | 显示全部楼层
摄像头和USB使用了同样的一个引脚PD3,你可以在程序里把USB的使能引脚PD3改成用其它引脚,然后在板子左侧的跳帽跳到你修改的引脚即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-30 19:56:16 | 显示全部楼层
东门安芙 发表于 2014-4-30 19:04
摄像头和USB使用了同样的一个引脚PD3,你可以在程序里把USB的使能引脚PD3改成用其它引脚,然后在板子左侧的 ...

按你说的,我把USB的PD3改为PD4了,引脚不会冲突了,现在不注释两个合二为一的原例程的代码,只有USB能工作,但是拍不了照,改引脚之前是两者都不能工作的,到底怎么了呢?
回复 支持 反对

使用道具 举报

发表于 2014-4-30 19:58:09 | 显示全部楼层
冰花炸弹球 发表于 2014-4-30 19:56
按你说的,我把USB的PD3改为PD4了,引脚不会冲突了,现在不注释两个合二为一的原例程的代码,只有USB能工 ...

改引脚前两者都不能工作?那可能是你相机部分的程序还没移植正确
回复 支持 反对

使用道具 举报

发表于 2014-4-30 19:59:03 | 显示全部楼层
冰花炸弹球 发表于 2014-4-30 19:56
按你说的,我把USB的PD3改为PD4了,引脚不会冲突了,现在不注释两个合二为一的原例程的代码,只有USB能工 ...

会不会是你拔掉跳线帽后相机接口的PD3信号没有与芯片相连了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-30 20:02:33 | 显示全部楼层
红舒扬 发表于 2014-4-30 19:59
会不会是你拔掉跳线帽后相机接口的PD3信号没有与芯片相连了?

看原理图可以知道,PD3与相机的摄像头的连接与那个跳线帽无关呢....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-30 20:03:44 | 显示全部楼层
东门安芙 发表于 2014-4-30 19:58
改引脚前两者都不能工作?那可能是你相机部分的程序还没移植正确

不会的,我只要注释掉USB部分的初始化代码,相机是可以工作的...但是一旦取消注释的话,就只有USB能工作了...
回复 支持 反对

使用道具 举报

发表于 2014-4-30 20:11:08 | 显示全部楼层
冰花炸弹球 发表于 2014-4-30 20:03
不会的,我只要注释掉USB部分的初始化代码,相机是可以工作的...但是一旦取消注释的话,就只有USB能工作了 ...

你看看USB初始化函数里是不是还有对PD3进行操作的代码,把它改了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-30 20:20:29 | 显示全部楼层
郑倚云 发表于 2014-4-30 20:11
你看看USB初始化函数里是不是还有对PD3进行操作的代码,把它改了

已经找过了,除了摄像头方面的,确实没有别的函数与PD3有关的了....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-30 20:40:56 | 显示全部楼层
郑倚云 发表于 2014-4-30 20:11
你看看USB初始化函数里是不是还有对PD3进行操作的代码,把它改了

谢谢你的解答,我终于找到问题所在了,在修改引脚之后,还需要把USB例程当中while (bDeviceState != CONFIGURED); /*等待配置完成*/    这条语句注释掉才可以实现我上面所说的功能的~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-30 20:41:14 | 显示全部楼层
红舒扬 发表于 2014-4-30 19:59
会不会是你拔掉跳线帽后相机接口的PD3信号没有与芯片相连了?

谢谢你的解答,我终于找到问题所在了,在修改引脚之后,还需要把USB例程当中while (bDeviceState != CONFIGURED); /*等待配置完成*/    这条语句注释掉才可以实现我上面所说的功能的~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-30 20:41:46 | 显示全部楼层
东门安芙 发表于 2014-4-30 19:58
改引脚前两者都不能工作?那可能是你相机部分的程序还没移植正确

谢谢你的解答,我终于找到问题所在了,在修改引脚之后,还需要把USB例程当中while (bDeviceState != CONFIGURED); /*等待配置完成*/    这条语句注释掉才可以实现我上面所说的功能的~~
回复 支持 反对

使用道具 举报

发表于 2014-4-30 21:51:37 | 显示全部楼层
冰花炸弹球 发表于 2014-4-30 20:41
谢谢你的解答,我终于找到问题所在了,在修改引脚之后,还需要把USB例程当中while (bDeviceState != CONF ...

解决就好
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-27 20:08 , Processed in 0.032121 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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