欢迎来到天天文库
浏览记录
ID:48211271
大小:105.00 KB
页数:17页
时间:2020-01-22
《PC104工控机DOS串口通讯源码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PC104工控机DOS串口通讯源码(中断收发)[2008-3-2110:26:00
2、By:dmjkun] 3推荐PC104工控机DOS平台下串口1及串口2源码(中断收发) 已通过BC3.1及BC4.5编译voidCom1RecvData(void){ uchartemp; staticucharMsgLen; temp=inportb(COM1_RBR_ADDR); Timer[TIMER_GIB_TO].Tick=10; Timer[TIMER_GIB_TO].Flg.BIT.Enable=1; if(GibStrFlg==0) {
3、 if(temp==0xaa) { GibStrFlg=1; GibBuf.RecvPtr=0; GibBuf.RecvBuf[GibBuf.RecvPtr++]=temp; GibBuf.Error.byte=0; } } else { if(temp==0xab&&GibBuf.RecvPtr==MsgLen+1) { GibStrFlg=0; GibBuf.RecvBuf[GibBuf.RecvPtr++]=temp; GibBuf.Flg.BIT.Recv=1; GibBuf.RecvLe
4、n=GibBuf.RecvPtr; } elseif(GibBuf.RecvPtr==1) { GibBuf.RecvBuf[GibBuf.RecvPtr++]=temp; MsgLen=temp; } elseif(GibBuf.RecvPtr5、; staticucharMsgLen; temp=inportb(COM2_RBR_ADDR); Timer[TIMER_HOST_TO].Tick=10; Timer[TIMER_HOST_TO].Flg.BIT.Enable=1; if(HostStrFlg==0) { if(temp==0xaa) { HostStrFlg=1; HostBuf.RecvPtr=0; HostBuf.RecvBuf[HostBuf.RecvPtr++]=temp; HostBuf.Error.byte=0; } } else 6、{ if(temp==0xab&&HostBuf.RecvPtr==MsgLen+1) { HostStrFlg=0; HostBuf.RecvBuf[HostBuf.RecvPtr++]=temp; HostBuf.Flg.BIT.Recv=1; HostBuf.RecvLen=HostBuf.RecvPtr; } elseif(HostBuf.RecvPtr==1) { HostBuf.RecvBuf[HostBuf.RecvPtr++]=temp; MsgLen=temp; } elseif(H7、ostBuf.RecvPtr8、ADDR,0x05&inportb(COM1_IER_ADDR)); }}voidCom2SendData(void){ if(HostBuf.SendPtr9、ri; for(i=0;i
5、; staticucharMsgLen; temp=inportb(COM2_RBR_ADDR); Timer[TIMER_HOST_TO].Tick=10; Timer[TIMER_HOST_TO].Flg.BIT.Enable=1; if(HostStrFlg==0) { if(temp==0xaa) { HostStrFlg=1; HostBuf.RecvPtr=0; HostBuf.RecvBuf[HostBuf.RecvPtr++]=temp; HostBuf.Error.byte=0; } } else
6、{ if(temp==0xab&&HostBuf.RecvPtr==MsgLen+1) { HostStrFlg=0; HostBuf.RecvBuf[HostBuf.RecvPtr++]=temp; HostBuf.Flg.BIT.Recv=1; HostBuf.RecvLen=HostBuf.RecvPtr; } elseif(HostBuf.RecvPtr==1) { HostBuf.RecvBuf[HostBuf.RecvPtr++]=temp; MsgLen=temp; } elseif(H
7、ostBuf.RecvPtr8、ADDR,0x05&inportb(COM1_IER_ADDR)); }}voidCom2SendData(void){ if(HostBuf.SendPtr9、ri; for(i=0;i
8、ADDR,0x05&inportb(COM1_IER_ADDR)); }}voidCom2SendData(void){ if(HostBuf.SendPtr9、ri; for(i=0;i
9、ri; for(i=0;i
此文档下载收益归作者所有