问答

汇集网友智慧,解决技术难题

21ic问答首页 - MM32通过DMA传输到蓝牙,再传输到手机的数据丢失的问题

蓝牙 手机 DMA se printf print

MM32通过DMA传输到蓝牙,再传输到手机的数据丢失的问题

SEU98772021-06-04
请问我想用MM32向蓝牙模块HC05传输数据,然后用手机接受,但是传输的数据丢包,并且只传输第一位数据(类似HCO5:1111111111),用的DMA传输到蓝牙,
                t = KEY_Scan(0);    //get   key value
                if( t == KEY3_PRES )
                {
                        sprintf((char*)sendbuf,"12345678 %d\r\n",sendcnt);
                        printf("%s",sendbuf);//显示发送数据               
                        u2_printf("2346789abcdefgh %d\r\n",sendcnt);        //发送到蓝牙模块

            sendcnt++;
                        if(sendcnt>99)sendcnt=0;
            t=0;
                        LED2_ON();
                        DELAY_Ms(100);
                  LED2_OFF();     
                }          
(主循环里的),
void u2_printf(char* fmt,...)  
{  
        va_list ap;
        va_start(ap,fmt);
        vsprintf((char*)USART3_TX_BUF,fmt,ap);
        va_end(ap);
        while(DMA_GetCurrDataCounter(DMA1_Channel2)!=0);        //等待通道2传输完成   
        UART_DMA_Enable(DMA1_Channel2,strlen((const char*)USART3_TX_BUF));         //通过dma发送出去
}
这是传输函数


回答 +关注 15
7001人浏览 2人回答问题 分享 举报
2 个回答

您需要登录后才可以回复 登录 | 注册