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