- 打卡等级:常住居民III
- 打卡总天数:136
- 最近打卡:2025-08-01 05:15:21
已绑定手机
注册会员
- 积分
- 116
|
定义函数:
#define OK
#ifdef OK
void sendstring1(unsigned char * fmt, ...)
{va_list arg_ptr;va_start(arg_ptr, fmt);vsprintf(pu8UR1DMATxBuffer,fmt, arg_ptr);va_end(arg_ptr);
DMA_UART1_ClearTxFlag();
DMA_UART1_SetTxAmount(strlen(pu8UR1DMATxBuffer)-1);DMA_UART1_TriggerTx();
}
#else
void sendstring1(unsigned char * fmt, ...)
{va_list arg_ptr;va_start(arg_ptr, fmt);vsprintf(pu8UR1DMATxBuffer,fmt, arg_ptr);va_end(arg_ptr);
{unsigned char c=0;while((DMA_UART1_CheckTxFlag()==0)&&(c<200)){c++;delay_us(1000);};}
DMA_UART1_ClearTxFlag();
DMA_UART1_SetTxAmount(strlen(pu8UR1DMATxBuffer)-1);DMA_UART1_TriggerTx();
}
#endif
main中:
#ifdef OK
sendstring1("abcd");while(DMA_UART1_CheckTxFlag()==0);DMA_UART1_ClearTxFlag();
sendstring1("efgh");while(DMA_UART1_CheckTxFlag()==0);DMA_UART1_ClearTxFlag();
sendstring1("ijkl\r\n");while(DMA_UART1_CheckTxFlag()==0);DMA_UART1_ClearTxFlag();
#else
sendstring1("abcd");
sendstring1("efgh");
sendstring1("ijkl\r\n");
#endif
当宏定义为OK时,得到了我预期的效果:
当未定义oK时,发送顺序有问题:
代码附后
请大师指点!!!
|
|