打印

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

[复制链接]
4416|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

粉丝