完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
4个回答
|
|
|
|
|
|
|
|
这是发送端程序:
#include "sys.h" #include "usart.h" #include "delay.h" #include "led.h" #include "key.h" #include "exti.h" #include "timer.h" #include "lcd.h" #include "ov7670.h" #include "usmart.h" #include "24l01.h" extern u8 ov_sta; //在exit.c里面定义 extern u8 ov_frame; //在timer.c里面定义 int main(void) { u32 j; u16 color; u8 t=0; u8 tmp_buf[33]; Stm32_Clock_Init(9); //系统时钟设置 uart_init(72,9600); //串口初始化为9600 delay_init(72); //延时初始化 LED_Init(); //初始化与LED连接的硬件接口 OV7670_Init(); LCD_Init(); NRF24L01_Init(); if(lcddev.id==0X6804) //强制设置屏幕分辨率为320*240.以支持3.5寸大屏 { lcddev.width=240; lcddev.height=320; } usmart_dev.init(72); //初始化USMART? POINT_COLOR=RED;//设置字体为红色 while(NRF24L01_Check())//检测不到24L01 return:1 ,检测到24L01 return:0 { LCD_ShowString(60,70,200,200,16,"24L01 Error!!!"); delay_ms(500); LCD_ShowString(60,70,200,200,16,"lease Check!!!"); delay_ms(500); LED0=!LED0;//DS0闪烁 } LCD_ShowString(60,70,200,200,16,"24L01 TX_Mode OK!"); while(OV7670_Init())//初始化OV7670 { LCD_ShowString(60,90,200,200,16,"OV7670 Error!!!"); delay_ms(500); LCD_ShowString(60,90,200,200,16,"lease Check!!!"); delay_ms(500); LED0=!LED0;//DS0闪烁 } LCD_ShowString(60,90,200,200,16,"OV7670 Init OK!"); Timerx_Init(10000,7199); //TIM3,10Khz计数频率,1秒钟中断 EXTI15_Init(); //使能定时器捕获 OV7670_Window_Set(10,174,240,320); //设置窗口 while(1) { if(ov_sta==2) //写入FIFO { LED0=0; LCD_Scan_Dir(U2D_L2R); //从上到下,从左到右 LCD_SetCursor(0x00,0x0000); //设置光标位置 LCD_WriteRAM_Prepare(); //开始写入GRAM OV7670_CS=0; OV7670_RRST=0; //开始复位读指针 OV7670_RCK=0; OV7670_RCK=1; OV7670_RCK=0; OV7670_RRST=1; //复位读指针结束 OV7670_RCK=1; TX_Mode(); while(NRF24L01_TxPacket(tmp_buf)!=TX_OK); for(j=0;j<76800;j++) //320*240=76800个像素点 ,每个像素点16位数据 { LED1=0; GPIOB->CRL=0X88888888; OV7670_RCK=0; color=OV7670_DATA; //读数据 OV7670_RCK=1; tmp_buf[t]=color; t++; color<<=8; OV7670_RCK=0; color|=OV7670_DATA; //读数据 OV7670_RCK=1; tmp_buf[t]=color; t++; GPIOB->CRL=0X33333333; LCD_WR_DATA(color); //显示一个像素点的颜色 if(t==32)//达到32Byte=32*8 bite,最大发送量 { t=0; while(NRF24L01_TxPacket(tmp_buf)!=TX_OK) ; }; OV7670_CS=1; OV7670_RCK=0; OV7670_RCK=1; EXTI->R=1<<15; //清除LINE8上的中断标志位 ov_sta=0; //开始下一次采集 ov_frame++; } } } } |
|
|
|
原子哥!现在可以传输图像了,大概2-3s一帧,但是出现了一条黑线,图像从黑线开始刷新,而且每刷新一帧,下移16行,从上移到下之后,又向右移动一格,又从上到下开始,不知该怎么解决?
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2549 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2333 浏览 5 评论
3165 浏览 3 评论
2806 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2765 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
612浏览 1评论
859浏览 0评论
974浏览 0评论
626浏览 0评论
453浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 14:10 , Processed in 1.426260 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号