OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3943|回复: 2

24l01无线传输摄像头拍的图像,传一帧之后就不传了,是哪里有问题啊

[复制链接]

11

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-9-5
在线时间
0 小时
发表于 2014-12-5 21:43:50 | 显示全部楼层 |阅读模式
5金钱
void camera_refresh(void)<br />
{<br />
u32 j;<br />
&nbsp;        u16 color;<br />
u8 t=0,sss=0; <br />
if(ov_sta==2)<br />
{<br />
LCD_Scan_Dir(U2D_L2R);                //从上到下,从左到右&nbsp;<br />
LCD_SetCursor(0x00,0x0000);        //设置光标位置&nbsp;<br />
LCD_WriteRAM_Prepare(); &nbsp; &nbsp; //开始写入GRAM <br />
OV7670_RRST=0;                                //开始复位读指针&nbsp;<br />
OV7670_RCK=0;<br />
OV7670_RCK=1;<br />
OV7670_RCK=0;<br />
OV7670_RRST=1;                                //复位读指针结束&nbsp;<br />
OV7670_RCK=1;&nbsp;<br />
for(j=0;j&lt;76800;j++)<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; OV7670_RCK=0;<br />
color=GPIOC-&gt;IDR&amp;0XFF;        //读数据<br />
OV7670_RCK=1;&nbsp;<br />
color&lt;&lt;=8; &nbsp;<br />
OV7670_RCK=0;<br />
color|=GPIOC-&gt;IDR&amp;0XFF;        //读数据<br />
OV7670_RCK=1; <br />
LCD-&gt;LCD_RAM=color; &nbsp; &nbsp;<br />
mycolor=color;<br />
mycolorL=mycolor&amp;0x00ff;<br />
mycolorH=(mycolor&gt;&gt;8)&amp;0x00ff;<br />
// &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(t=0,sss=0;t&lt;16;t++)<br />
<br />
{<br />
&nbsp; tmp_buf[2*t]=mycolorH;<br />
&nbsp; tmp_buf[2*t+1]=mycolorL;<br />
&nbsp; sss++,t++;<br />
}<br />
if(sss==16)<br />
{<br />
&nbsp; &nbsp;while(NRF24L01_TxPacket(tmp_buf)!=TX_OK);<br />
sss=0,t=0;<br />
}<br />
&nbsp; &nbsp;                 &nbsp;<br />
} &nbsp;<br />
&nbsp;                OV7670_CS=1;                                                         &nbsp;<br />
OV7670_RCK=0;&nbsp;<br />
OV7670_RCK=1;&nbsp;<br />
EXTI-&gtR=1&lt;&lt;15; &nbsp; &nbsp;                 //清除LINE8上的中断标志位<br />
ov_sta=0;                                        //开始下一次采集<br />
&nbsp;                ov_frame++;&nbsp;<br />
LCD_Scan_Dir(DFT_SCAN_DIR);        //恢复默认扫描方向          &nbsp;                                         &nbsp;<br />
}&nbsp;<br />
}         &nbsp;<br />
int main(void)<br />
{ <br />
u8 i; <br />
uart_init(1382400);                 //串口初始化为9600<br />
delay_init();         &nbsp; &nbsp;         //延时函数初始化         &nbsp;<br />
&nbsp;         OV7670_Init(); <br />
NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级         &nbsp;<br />
NRF24L01_Init(); &nbsp; &nbsp;        //初始化NRF24L01&nbsp;<br />
LCD_Init();<br />
usmart_dev.init(72);        //初始化USMART<br />
while(NRF24L01_Check())        //检查NRF24L01是否在位. <br />
{<br />
printf("24L01 Check Failed!");<br />
delay_ms(500);<br />
}<br />
NRF24L01_TX_Mode();<br />
printf("24L01 Check OK!");<br />
LED_Init();                 &nbsp;                //初始化与LED连接的硬件接口<br />
LCD_Init();                         &nbsp;         //初始化LCD<br />
if(lcddev.id==0X6804)         //强制设置屏幕分辨率为320*240.以支持3.5寸大屏<br />
{<br />
lcddev.width=240;<br />
lcddev.height=320;&nbsp;<br />
}<br />
usmart_dev.init(72);        //初始化USMART <br />
&nbsp;                         &nbsp; &nbsp;<br />
&nbsp;        POINT_COLOR=RED;//设置字体为红色&nbsp;<br />
&nbsp;&nbsp;<br />
while(OV7670_Init())//初始化OV7670<br />
{<br />
printf("OV7670 Error!!");<br />
delay_ms(200);<br />
}<br />
&nbsp; &nbsp; printf("OV7670 Init OK");<br />
delay_ms(1500);                  &nbsp;          &nbsp;<br />
TIM6_Int_Init(10000,7199);                        //10Khz计数频率,1秒钟中断                                                                         &nbsp;<br />
&nbsp;        EXTI8_Init();                                                //使能定时器捕获<br />
OV7670_Window_Set(10,174,240,320);        //设置窗口         &nbsp;<br />
&nbsp;         OV7670_CS=0;                                                         &nbsp;<br />
&nbsp;        while(1)<br />
{ <br />
&nbsp;                camera_refresh();        //更新显示        &nbsp;<br />
&nbsp;                if(i!=ov_frame)                //DS0闪烁.<br />
{<br />
i=ov_frame;<br />
LED0=!LED0;<br />
&nbsp;                }<br />
<br />
}         &nbsp;&nbsp;<br />
}<br />
<div>
        传一帧之后就不传了,是哪里有问题啊<br />
</div>

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2014-12-5 23:16:23 | 显示全部楼层
这你得慢慢分析啊,是数据没传输,还是传输错误,慢慢查。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-6-22
在线时间
0 小时
发表于 2014-12-6 08:23:19 | 显示全部楼层
void&nbsp;camera_refresh(void)
<br>{
<br>        u32&nbsp;j;
<br>        u8&nbsp;k;
<br>&nbsp;        u16&nbsp;color;        &nbsp;
<br>        if(ov_sta==2)
<br>        {
<br>                LCD_Scan_Dir(U2D_L2R);                //从上到下,从左到右&nbsp;
<br>                LCD_SetCursor(0x00,0x0000);        //设置光标位置&nbsp;
<br>                LCD_WriteRAM_Prepare();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//开始写入GRAM       
<br>                OV7670_RRST=0;                                //开始复位读指针&nbsp;
<br>                OV7670_RCK=0;
<br>                OV7670_RCK=1;
<br>                OV7670_RCK=0;
<br>                OV7670_RRST=1;                                //复位读指针结束&nbsp;
<br>                OV7670_RCK=1;&nbsp;&nbsp;
<br>                for(j=0;j&lt;4800;j++)
<br>                {
<br>                        for(k=0;k&lt;32;k++)
<br>                        {
<br>                                OV7670_RCK=0;
<br>                                color=GPIOC-&gt;IDR&0XFF;        //读数据
<br>                                OV7670_RCK=1;&nbsp;
<br>                                tmp[k]&nbsp;=&nbsp;color;
<br>                        }
<br>                        for(k=0;k&lt;32;k+=2)
<br>                        {
<br>                                color&nbsp;=&nbsp;(tmp[k]&lt;&lt;8)|tmp[k+1];
<br>                                LCD-&gt;LCD_RAM&nbsp;=&nbsp;color;
<br>                        }
<br>                        NRF24L01_TxPacket(tmp);
<br>                }&nbsp;&nbsp;&nbsp;                                                        &nbsp;
<br>                EXTI_ClearITPendingBit(EXTI_Line8);&nbsp;&nbsp;//清除LINE8上的中断标志位
<br>                ov_sta=0;                                        //开始下一次采集
<br>                LCD_Scan_Dir(DFT_SCAN_DIR);        //恢复默认扫描方向&nbsp;
<br>        }&nbsp;
<br>}               
<br>
<br>这个可以试试
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-1 12:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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