信号量有点类似全局变量标志,但是应用有差别。
struct rt_semaphore sem_test;
初始化一个静态信号量
if(rt_sem_init(&sem_test,"test",0,RT_IPC_FLAG_FIFO)==RT_EOK)
{
UsartPrintf(USART1, "init sem_test is OK\r\n");
}
else
{
UsartPrintf(USART1, "init sem_test is fail\r\n");
}
放一个信号量
rt_sem_release(&sem_test);
识别信号量 处理任务
if(rt_sem_trytake(&sem_test)==RT_EOK)
{
UsartPrintf(USART1, "get sem_test is ok\r\n");
}