串口如何合理设置发送延迟

2019-07-21 01:12发布

用的是stm32f103c8t6,三个串口分别接了相同的传感器,传感器自身是每隔1s主动发送数据,响应时间为3s,传感器数据处理成字符串后,大概有100个字符,想通过下面的方式发送
         for(t1=0;t1<100;t1++)
           {         
                        Usart1SendChar(GET[t1]);
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
                 }//等待发送结束                         
        delay_ms(3000);
但是这个delay_ms不知道怎么设置比较好,
设置为1s以下的话,传感器本身是1s才发数

设置为1s以上的话感觉前一个还没发完,下一个已经来了。
几个问题
设置为1s是合理的吗?或者说更短的时间200ms?需不需要管传感器本身发数据的时间?
https://zhidao.baidu.com/question/351756601.html 按这个网页的话似乎一般不需要设置太大的延时?
跪求大神解决小白问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
nabla
2019-07-21 22:30
本帖最后由 nabla 于 2019-5-18 15:53 编辑
warship 发表于 2019-5-18 09:41
问题描述不清楚,
你说的是三个串口各接了传感器,
也就是说传感器是串口的,

额 我详细表述下吧  其实我最初是想用ALIENTEK MiniSTM32这个板子直接接五个同样的传感器进行测试的,但是发现和屏幕还有SD卡的引脚冲突,导致只有一个传感器能正常收到数据。然后就换了一种方案,就是先用两块stm32f103c8t6板,其中第一个板子接3个传感器(因为没法接更多了啊),就是接PA10,PA3,PB11这几个接收端,然后我把接收到的数据以字符串的形式通过PA9发送给第二个板子的PA10,此时第二个板子的PA3和PB11再接剩下的两个传感器,最后同样的把之前收到的字符串和这两个传感器的数据再以字符串的形式发给ALIENTEK MiniSTM32的PA10,最后就是通过这个板子来保存到SD以及屏幕示数了。主要学艺不精,不知道怎么解决这个板子的引脚冲突,所以只好采取这种接力传的笨办法。当然就引出了我这个问题,delay设置的太长,我的最后一个板子甚至会收不到数,设置的太短,又频繁出现异常值。不好意思啊,之前表述的不太清楚

一周热门 更多>