求救,stm32通过串口把sd卡中的图片发送到gsm模块中

2019-07-21 01:49发布

我想通过gsm模块发送彩信,电脑上位机测试gsm模块是可以正常发送彩信的,但是用单片机控制时无法正确通过串口发送图片数据,各位大神救命啊!
——————————————————————————————————
如何通过串口发送图片数据(是不是我没有用16进制发送图片?)
————————————————————————————————————

(看第一个函数就好了)
void Send_Bmp(char * filename)//通过串口发送图片
{
unsigned int i,bw;
unsigned char pic[1];
f_open( &fp ,(char*)filename,  FA_OPEN_EXISTING | FA_READ);            //打开图片文件
for(i=0;i<9662;i++)
{
  f_read(&fp,pic, sizeof(unsigned char), &bw);             //读取一个字节
  UART1_SendString((char*)pic);             //通过串口发送一字节数据到gsm模块中   
}
f_close(&fp);
}
通过串口助手知道,串口发送的字节比实际图片小,我设定发送9662字节但是实际上串口接收到的只有7千多字节,不知道是什么问题啊

--------------------------------------------------------------------------------------
void UART1_SendString(char* s)
{
while(*s)//检测字符串结束符
{
  while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
  USART_SendData(USART1 ,*s++);//发送当前字符
}
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
}
-----------------------------------------------------------------------
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
  /* Check the parameters */
  assert_param(IS_USART_ALL_PERIPH(USARTx));
  assert_param(IS_USART_DATA(Data));
   
  /* Transmit Data */
  USARTx->DR = (Data & (uint16_t)0x01FF);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。