新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2014-11-30
- 在线时间
- 0 小时
|
5金钱
大家好,我修改例程上面的程序,传输图片数据,但是接收到的数据出现大多数数据不对,接收数据也是有多有少,麻烦大家看看我的程序,看哪里出错了,我用电脑调试助手、php写的socket两种接收方式
程序方法:
u8 stdbmp_decode_send(const u8 *filename)
{
FIL* f_bmp;
u16 br;
u8 res;
u16 i;
char *pname;
u8 *databuf; //数据读取存放地址
u8 *d1;
u16 readlen=BMP_DBUF_SIZE;//一次从SD卡读取的字节数长度
u8 *bmpbuf; //数据解码地址
d1=(u8*)mymalloc(SRAMIN,10);
//if(pname==NULL){u2_printf("%s","pnamelose");}
#if BMP_USE_MALLOC == 1 //使用malloc
databuf=(u8*)mymalloc(SRAMIN,readlen); //开辟readlen字节的内存区域
if(databuf==NULL)return PIC_MEM_ERR; //内存申请失败.
f_bmp=(FIL *)mymalloc(SRAMIN,sizeof(FIL)); //开辟FIL字节的内存区域
if(f_bmp==NULL) //内存申请失败.
{
myfree(SRAMIN,databuf);
return PIC_MEM_ERR;
}
#else //不使用malloc
databuf=bmpreadbuf;
f_bmp=&f_bfile;
#endif
res=f_open(f_bmp,(const TCHAR*)filename,FA_READ);//打开文件
if(res==0)//打开成功.
{
f_read(f_bmp,databuf,readlen,(UINT*)&br); //读出readlen个字节 指向文件对象的指针/指向数据缓冲区的指针/读取的字节数/指针读的字节数
bmpbuf=databuf;
while(1)
{
//d1=bmpbuf;
for(i=0;i<readlen;i++,bmpbuf++)//※填充ASCII字符集数据
{
USART2_TX_BUF=*bmpbuf;
}
while(DMA1_Channel7->CNDTR!=0); //等待通道7传输完成
UART_DMA_Enable(DMA1_Channel7,strlen((const char*)USART2_TX_BUF)); //通过dma发送出去
res=f_read(f_bmp,databuf,readlen,(UINT *)&br);//读出readlen个字节
if(br!=readlen)readlen=br; //最后一批数据
if(res||br==0)break; //读取出错
bmpbuf=databuf;
}
res=1;
f_close(f_bmp);//关闭文件
}
#if BMP_USE_MALLOC == 1 //使用malloc
myfree(SRAMIN,databuf);
myfree(SRAMIN,pname);
myfree(SRAMIN,d1);
myfree(SRAMIN,f_bmp);
#endif
return res; //BMP显示结束.
}
调试助手接收出错数据: 文件头都错掉了
42 4d 42 58 02 77 e8 6a a9 62 c9 62 c8 62 68 62 48 6a 87 62 a7 52 88 5a 68 62 87 5a c8 6a 08 7b 2a 83 ac 8b 4d a4 cf b4 30 c5 71 cd 92 d5 72 d5 92 d5 92 d5 92 cd 71 cd 71 cd 51 c5 51 cd 31 cd 51 c5 51 c5 51 bd 30 cd 31 c5 11 c5 f1 c4 11 c5 11 c5 11 cd b2 cd 92 cd 92 d5 b2 cd 72 cd 72 d5 72 d5 72 cd 72 c5 32 cd 71 c5 92 c5 72 cd 71 cd 71 c5 52 c5 72 c5 52 cd 51 c5 72 c5 72 c5 32 c5 11 c5 31 bd 31 bd 11 c5 31 c5 31 bd 31 bd f1 c4 f0 bc d1 bc f1 b4 f0 b4 ef ac cf ac d0 a4 cf a4 af a4 8f a4 6e a4 6e a4 6f 9c 4e a4 4d 9c 2c 9c 0c 94 0d 9c ed 9b cc 93 cc 93 cb 93 cc 8b aa 93 6c 93 6c 93 8b 8b 6b 8b 6a 83 2a 8b 09 83 29 7b 29 8b 09 83 0a 83 4a 83 2b 83 29 7b 49 7b 2a 83 2b 83 2a 83 6a 7b 0a 83 0a 7b e9 82 ea 82 e9 7a ca 7a ab 82 aa 82 ea 72 a9 72 ca 82 89 82 a9 7a a8 7a 88 7a ca 7a a9 82 aa 7a 8a 82 aa 7a 89 72 a8 72 a9 7a a9 72 69 7a 49 82 69 72 6a 7a 89 7a 89 72 8a 7a 89 7a 69 72 f0 bc 10 ad af ac 6f 9c ec 93 aa 73 2a 5b a9 6a a9 6a a9 72 e9 6a 09 63 29 63 09 73 29 73 0a 83 2a 83 2a 7b 6b 73 49 7b 49 7b 4a 83 2b 7b 0b 7b 4b 7b 6a 7b 4a 7b 2a 7b 49 7b 49 6b e9 7a 09 7b a9 7a 49 6b 49 7b 6a 7b cc 8b 0d 94 4e 94 af ac 10 bd 51 cd 92 d5 d2 d5 d2 cd 92 dd b2 dd b3 dd b3 d5 d2 dd b2 dd b2 d5 b2 d5 93 d5 b2 cd d2 d5 b2 d5 92 d5 b2 d5 92 d5 93 d5 b3 dd b3 dd b2 d5 b3 dd b3 d5 b3 dd d3 dd d3 dd d3 d5 f2 e5 f3 e5 13 de f3 dd d3 d5 d2 dd b3 dd b3 dd d2 d5 b2 d5 92 d5 92 d5 b2 d5 92 d5 92 dd b3 d5 d2 d5 b2 d5 92 d5 b2 d5 d3 d5 b3 dd b3 dd d2 dd d3 dd b3 dd d3 dd d2 dd b2 d5 b2。。。
|
|