最近刚抽出时间来验证上边的代码,楼上兄弟的代码中少一句:
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=1); //等待发送结束
现在我把完整的u2_printf函数代码贴出来(该部分代码经本人亲测可用)。
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]void u2_printf(char* fmt,...)
{
int cnt = 0;
int len = 0;
va_list ap;
va_start(ap,fmt);
vsprintf((char*)myUsart2.TxBuf,fmt,ap);
va_end(ap);
len = strlen((const char*)myUsart2.TxBuf);
while(len--)
{
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=1);//等待发送结束
USART_SendData(USART2,myUsart2.TxBuf[cnt++]);
}
}[/mw_shl_code]
|