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

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条回答
warship
2019-07-22 05:36
本帖最后由 warship 于 2019-5-18 16:29 编辑
nabla 发表于 2019-5-18 15:57
如果可以的话,可以请您帮我看下代码吗,因为总是出现一些异常的数据,我无法判断是代码存在问题,还是传 ...

看了你的描述头都要大了,看代码估计更崩溃。
你这种同时调三个MCU,并且都是把一个串口的收发接不同的设备,
感觉不是太可取。
建议你改变方案,
如果不改变方案的话,还是慢慢调吧。
原则是:
不要眉毛胡子一把抓,学会一个问题一个问题单独解决。
你现在最要紧的是把串口通信用通用的方案解决好:
1、一定要中断方式接收   
2、开辟缓冲区用于存放接收数据  
3、编写好接收处理程序  
4、在主循环中调用接收处理程序,需要发送就直接发送(不要考虑延时的事儿!!)

一周热门 更多>