FIFO缓冲区是先入先出缓冲区,实现为环形缓冲区。数据以写入缓冲区的顺序存储,然后从存储的首个数据项开始,以存储顺序读出。对于按顺序缓冲对象很方便。
要使用的区域使用FP_FIFO_DEFINE定义为FIFO缓冲区。(在读取或写入完成之前,此操作只应执行一次。)
数据应使用FP_FIFO_WRITE写入缓冲区,并使用FP_FIFO_READ读出缓冲区。
写入数据时,数据项从首个数据存储区域开始,按顺序存储。写入指针指示要写入数据的下一区域。存储的字数增加1。
如果数据存储区域变满,即存储的字数等于n-1,则禁止再写入数据。
读取数据时,数据从存储的首个数据项开始进行传输。读取指针指示要读取数据的下一区域。存储的字数减少1。
如果在数据存储区域为空,存储的字数等于FIFO缓冲区的存储容量或等于零时尝试读取数据,会发生错误。
如果在FIFO缓冲区处于下图状态时写入数据,数据将存储在由3指示的区域内。写入指针移动到4,即下一数据项将写入4。如果读取数据,将从由0指示的区域读取。读取指针移动到1,即下一数据项将从1读取。