中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

怎样在C8051F单片机内实现FIFO操作?

 EAM 金属加工技术服务联盟

下载贤集网APP入驻自媒体

1、首先定义一个串口数据接收缓存;
2、在串口中断中,增加HF标记,HF=1,HF=2分别对应FIFO的半满和全满;
3、在半满和全满标记为1时,对接收的数据进行存储。
unsigned char xdata RS0_Buf[512];
uchar RX0_HF = 0;
void UART0(void) interrupt 4
{
static uint iRsBuf1Idx0 = 0;
SFRPAGE=UART0_PAGE;
if(RI0)
{
RI0=0;
RS0_Buf[iRsBuf1Idx0++] = SBUF0;
if(iRsBuf1Idx0==256)
{
RX0_HF=1;
}
else if(iRsBuf1Idx0>=512)
{
RX0_HF=2;
iRsBuf1Idx0 = 0;
}
}
}

主程序:

main()
{

initial();

while(1)
{

if(RX0_HF)
{
if(RX0_HF==1)
{
//do something
}
else if(RX0_HF==2)
{
//do something
}
} //if
} //whlie

} //main
最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流