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