建立一个通讯任务。又建立了多个不同的信号量,来发送不同的数据。现在想在一个通讯任务中能否等待这些信号量,来发送不同的数据?
void RS485_task(void *pdata)
{
u8 key=6;
u8 rs485buf1[6]; //发送1
u8 rs485buf2[6]; //发送2
u8 rs485buf3[6]; //发送3
u8 rs485buf4[6]; //发送4
u8 rs485buf5[6]; //发送5
u8 rs485buf6[6]; //发送6
u8 rs485buf7[6]; //发送7
u8 rs485buf8[6]; //发送8
u8 err;
while(1)
{
OSSemPend(sem_open1,0,&err); //打开负载1
for(i=0;i<6;i++)
rs485buf1=LOAD1OPEN;
send_command_modbus(rs485buf1,6);
OSSemPend(sem_close1,0,&err); //关闭负载1
for(i=0;i<6;i++)
rs485buf2=LOAD1CLOSE;
send_command_modbus(rs485buf2,6);
OSSemPend(sem_open2,0,&err); //打开负载2
for(i=0;i<6;i++)
rs485buf3=LOAD2OPEN;
send_command_modbus(rs485buf3,6);
OSSemPend(sem_close2,0,&err); //关闭负载2
for(i=0;i<6;i++)
rs485buf4=LOAD2CLOSE;
send_command_modbus(rs485buf4,6);
............
在这个任务中能这样写吗??
|