嵌入式学习小组
直播中

张依弛

8年用户 168经验值
私信 关注

ucos怎么处理I2C或模拟SPI问题

从裸机转到ucos,困惑还挺多的,求各位朋友解答;如果I2C任务在读写操作的时候,被别的任务打断,会影响正常的读写,不知道在ucos或RTOS中该怎么处理如果读写过程禁止任务切换,会出现最坏的情况,即读不到数据,需等到超时才能结束本次读写,不知道大家有什么好的思路(模拟SPI也有该问题,不知道硬件SPI和硬件I2C会不会有这个问题)
void Task_EEPROP_WR(void)   
{
    EEPROM_Init();
    while(1)
    {
        if(readFlag)
        {
            ReadEEPROM(rAddrIndex,length);
        }
        else if(writeFlag)
        {
            WriteEEPROM(wAddrIndex,length);
        }
    }
}
void Task_Other1(void)  //有多个这样的任务
{
    while(1)
    {
        doSomeThing();
        OStimeDlyHMSM(0,0,0,20);
    }
}

回帖(2)

陈茹

2020-5-29 15:08:16
你可以禁止任务调度,就可以了。具体参考我们综合实验
举报

李正茂

2020-5-29 15:25:58
谢谢原子哥
举报

更多回帖

发帖
×
20
完善资料,
赚取积分