STM32串口发送,每个字节多长时间发送完成

[复制链接]
4843|3
 楼主| adamj2009 发表于 2016-1-14 11:05 | 显示全部楼层 |阅读模式
最近遇到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--);
  }
       
}
cjseng 发表于 2016-1-14 11:20 | 显示全部楼层
波特率是多少啊?这个是根据波特率来的
nethopper 发表于 2016-1-14 16:12 | 显示全部楼层
tn 好像没用到,初始化应在循环之前吧
chunyang 发表于 2016-1-14 16:15 | 显示全部楼层
串口通迅时间远远长于相关的指令执行时间,根据波特率即可计算出耗时对不对。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

71

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部