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

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条回答
正点原子
1楼-- · 2019-07-21 02:14
你这是mcu主动发数据吧,不是接收代码
nabla
2楼-- · 2019-07-21 05:05
 精彩回答 2  元偷偷看……
warship
3楼-- · 2019-07-21 07:09
 精彩回答 2  元偷偷看……
nashui_sx
4楼-- · 2019-07-21 11:10
收到数据再发,不要延时
www88988
5楼-- · 2019-07-21 15:39
1. 在中断函数中接收数据到缓存
2. 在传感器数据处理程序中不断的查询缓存是否有新的数据,接收完传感器新数据处理,处理完了就发送结果,不需要延时
3. 在主程序循环中调用数据处理程序
猎人123
6楼-- · 2019-07-21 19:04
根据你的描述,你是有三个传感器和三个单片机吗?如果你是想要从传感器得到数据再传到下一个单片机的话,可以这么做:
传感器1s发送一次数据,你可以建立一个数组缓存数据,当达到三次了也就是3s,再传给下一个单片机就可以了。

一周热门 更多>