初级会员

- 积分
- 142
- 金钱
- 142
- 注册时间
- 2018-3-29
- 在线时间
- 17 小时
|

楼主 |
发表于 2018-9-16 14:04:17
|
显示全部楼层
下面是我的代码,将文件路径传递给函数,然后每次取2K的数据,再从串口发送给ESP8266,但是在上位机上接收到的数据却只有70多k,原文件大小为153666bit,望大佬能给看一下
void pic_send(const u8 *filename)
{
FIL* f_bmp;
u8 *databuf; //Êý¾Ý¶ÁÈ¡´æ·ÅµØÖ·
u16 readlen=2048; //Ò»´Î´ÓSD¿¨¶ÁÈ¡µÄ×Ö½ÚÊý³¤¶È
// char cmd[18],num[5];
u16 t;
u8 res; //Ö´ÐÐ״̬
f_bmp=(FIL *)pic_memalloc(sizeof(FIL)); //¿ª±ÙFIL×Ö½ÚµÄÄÚ´æÇøÓò
databuf=(u8*)pic_memalloc(readlen); //¿ª±Ùreadlen×Ö½ÚµÄÄÚ´æÇøÓò
esp8266_send_cmd("AT+CIPSEND=0,6","",20); //ÏȽ«Îļþ´óС·¢Ë͸ø¿Í»§¶Ë£¬Í¼Æ¬´óС¹Ì¶¨Îª153666B
printf("%s","153666");
res=f_open(f_bmp,(const TCHAR*)filename,FA_READ);//´ò¿ªÎļþ
if(res==0)//´ò¿ª³É¹¦.
{
while(1)
{
res=f_read(f_bmp,databuf,readlen,(UINT *)&br);//¶Á³öreadlen¸ö×Ö½Ú
if(br!=readlen) readlen=br; //×îºóÒ»ÅúÊý¾Ý
esp8266_send_cmd("AT+CIPSEND=0,2048","",20);
for(t=0;t<readlen;t++)
{
USART_SendData(USART1, databuf[t]);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
}
if(res||br==0)break; //¶ÁÈ¡³ö´í
}
f_close(f_bmp);//¹Ø±ÕÎļþ
}
} |
|