ucosII任务接收串口数据,挂起问题
采用ucosii操作系统,两个任务,
1. 任务一专门接收USART1的数据,然后进行分析处理,专门接收上位机数据
2. 巡检下位机,通过USART2定时发送数据通讯,
3. 所有数据的接收和发送都在对应的中断服务程序中接收放入缓冲区,但不处理,由各自任务处理
现在有这样一个问题,任务一被动接收上位机的数据,必须时刻查询接收缓冲区是否有数据,如下
void task1(void)
{
while(1) {
...//查询接收缓冲区数据
DLY10MS(5); //挂起任务
}
}
void task2(void)
{
...//巡检下位机
DLY10MS(5);//挂起任务
}
/// example of use Semaphore
void UART1_IntHandler (void)
{
// hardware related operation
OSSemPost(/* parameters */);
}
void task1 (void)
{
for (;;)
{
OSSemPend(/* parameters */);
// data arrived, use the data and do your work
}
}