我想通过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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>