OpenEdv-开源电子网

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

关于无线图像传输的问题

[复制链接]

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-4-22
在线时间
0 小时
发表于 2014-5-15 12:34:42 | 显示全部楼层 |阅读模式
5金钱
我做的是基于STM32F103超级战舰的无线图像传输,用的无线模块是nrf24l01,发送320*240的像素数据,但接受的射频芯片串口接收到的数据没有320*240*2个字节,为什么呢,怎么解决

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-15 13:55:32 | 显示全部楼层
你怎么传输的?有没有做协议?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-4-22
在线时间
0 小时
 楼主| 发表于 2014-5-15 14:13:30 | 显示全部楼层
做了协议啊,我的接收端射频芯片是直接接在电脑上
回复

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-4-22
在线时间
0 小时
 楼主| 发表于 2014-5-15 14:14:22 | 显示全部楼层
然后在电脑上的串口调试助手上显示传过来的数据
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-15 14:15:44 | 显示全部楼层
那你看看数据正常不?
测试下了
先憋开摄像头,直接传输100K字节,看看你收到是不是100K字节?
然后看看这些数据是不是正常.
再去加入摄像头.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-4-22
在线时间
0 小时
 楼主| 发表于 2014-5-15 14:17:57 | 显示全部楼层
总的过程就是摄像头拍摄,在LCD上显示,同时将像素数据通过射频芯片传输,程序如下:
void camera_refresh(void)
{
u32 j;
  u16 color;
u8 t=0,sss=0;  
if(ov_sta==2)
{
LCD_Scan_Dir(U2D_L2R); //从上到下,从左到右 
LCD_SetCursor(0x00,0x0000); //设置光标位置 
LCD_WriteRAM_Prepare();     //开始写入GRAM
OV7670_RRST=0; //开始复位读指针 
OV7670_RCK=0;
OV7670_RCK=1;
OV7670_RCK=0;
OV7670_RRST=1; //复位读指针结束 
OV7670_RCK=1;  
for(j=0;j<76800;j++)
{
OV7670_RCK=0;
color=GPIOC->IDR&0XFF; //读数据
OV7670_RCK=1; 
color<<=8;  
OV7670_RCK=0;
color|=GPIOC->IDR&0XFF; //读数据
OV7670_RCK=1; 
LCD->LCD_RAM=color;
mycolor=color;
mycolorL=mycolor&0x00ff;
mycolorH=(mycolor>>8)&0x00ff;
tmp_buf[0]=30;
tmp_buf[2*t+2]=mycolorH;
tmp_buf[2*t+1]=mycolorL;
sss++,t++;
if(sss==15)
{ NRF24L01_TxPacket(tmp_buf);
    while(NRF24L01_TxPacket(tmp_buf)!=TX_OK);
sss=0,t=0;
}
    
}     
ov_frame++;
printf("%x",ov_frame);
ov_sta=0;
OV7670_WREN=0;
LCD_Scan_Dir(DFT_SCAN_DIR); //恢复默认扫描方向 

}
回复

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-4-22
在线时间
0 小时
 楼主| 发表于 2014-5-15 14:19:00 | 显示全部楼层
我的接收模块要求传的数据第一个必须是字节数,所以我的程序就根据这个编写的
回复

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-4-22
在线时间
0 小时
 楼主| 发表于 2014-5-15 16:02:06 | 显示全部楼层
直接传输100K字节,接收到的少很多,这是什么情况
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-15 20:10:42 | 显示全部楼层
回复【8楼】stefenief:
---------------------------------
说明你数据有丢失了。。。
参考下modbus传输协议,每次传输后,接收端必须反馈一个信息,才发送下一次数据。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 22:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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