新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2020-3-5
- 在线时间
- 10 小时
|
5金钱
本帖最后由 天空之懿 于 2020-3-13 16:05 编辑
void Send_Cmd(void)
{
while(flag1); RS485_SendArray(a,8);
while(flag1);
RS485_SendArray(b,8);
while(flag1);
RS485_SendArray(c,8);
while(flag1);
RS485_SendArray(d,8);
while(flag1);
RS485_SendArray(e,8);
while(flag1);
}a,b,c,d,e都是数组指令,flag1是处理完成的标志,flag1初始化为0,发送指令,设备会回复,一旦进入中断接收的服务函数flag1=1,中断接收的服务函数内有一个数组BUFF[],一旦接收的BUFF元素个数等于8就把接收的BUFF发给上位机,同时,flag1=0;继续发送下面一个,直到全部发完。我感觉是不是要再加个延时RS485_SendArray(a,8);delay_ms(5);while(flag1);这样做可行吗,会有逻辑上的BUG吗?如果不行的话怎么样发不会出现,连续发送数据,导致数据还没有返回或者接收,就已经发下一个指令了
|
|