最近遇到STM32一个小问题,串口发送的时间问题,流程是这样发送数据、等待TC置位、发送下一个字节、等待TC置位,如此循环,最后测试发现发送1000个字节的数据,居然要将近100mS(仿真值),并且几乎可以断定,时间多数消耗在等待发送完成标志TC置位,各位怎么看?代码如下
void USART2_SendBuff (uint8_t *buf,uint16_t len)
{
uint32_t tn;
while(len--)
{
tn = 60000;
USART_SendData(USART2,*buf++);
while(!(USART_GetFlagStatus(USART2,USART_FLAG_TC)) && tn--);
}
} |