中级会员
 
- 积分
- 427
- 金钱
- 427
- 注册时间
- 2015-3-11
- 在线时间
- 123 小时
|
10金钱
我原本的发送函数是这样的:
void USARTx_printf(USART_TypeDef* USARTx, uint8_t *Data,u8 len)
{
u8 i;
while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
for(i=0;i<len;i++)
{
USART_SendData(USARTx, *Data++);
while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
}
}
我想改成dma传输的方式,参考了原子的串口蓝牙里的串口超时法里的一段程序,并且已经配置好了所有的东西,他的发送函数是这样的:
void u2_printf(char* fmt,...)
{
va_list ap;
va_start(ap,fmt);
vsprintf((char*)USART2_TX_BUF,fmt,ap);
va_end(ap);
while(DMA_GetCurrDataCounter(DMA1_Channel7)!=0);
UART_DMA_Enable(DMA1_Channel7,strlen((const char*)USART2_TX_BUF));
}
这个是已经设置好了dma传输的,dma的配置不变,我想把void USARTx_printf(USART_TypeDef* USARTx, uint8_t *Data,u8 len)这个改成dma的方式,应该在这个函数里面怎么改啊?求助大神啊!!
|
|