一个c语言的串口通信程序范例
《一个c语言的串口通信程序范例》由会员分享,可在线阅读,更多相关《一个c语言的串口通信程序范例(7页珍藏版)》请在装配图网上搜索。
1、#include #include #include #include #define COM232 0x2f8#define COMINT 0x0b#define MaxBufLen 500#define Port8259 0x20#define EofInt 0x20static int comportaddr;static char intvectnum;static unsigned char maskb;static unsigned char BufferMaxBufLen;static int CharsInBuf,CircIn,CircOut;static void (inte
2、rrupt far *OldAsyncInt)();static void interrupt far AsyncInt(void);void Init_COM(int ComPortAddr, unsigned char IntVectNum, int Baud, unsigned char Data, unsigned char Stop, unsigned char Parity)unsigned char High,Low;int f;整理为word格式comportaddr=ComPortAddr;intvectnum=IntVectNum;CharsInBuf=0;CircIn=0
3、;CircOut=0;f=(Baud/100);f=1152/f; High=f/256;Low=f-High*256;outp(ComPortAddr+3,0x80);outp(ComPortAddr,Low);outp(ComPortAddr+1,High);Data=(Data-5)|(Stop-1)*4);if(Parity=2) Data=Data|0x18;else if(Parity=1) Data=Data|0x8;outp(ComPortAddr+3,Data);outp(ComPortAddr+4,0x0a);outp(ComPortAddr+1,0x01);disable
4、();OldAsyncInt=getvect( IntVectNum );setvect( IntVectNum, AsyncInt );整理为word格式enable();maskb=inp(Port8259+1);if(IntVectNum=0x0c)outp(Port8259+1,maskb&0xef);else outp(Port8259+1,maskb&0xf7);static void interrupt far AsyncInt(void)disable();if(CharsInBufMaxBufLen) BufferCircIn=inp(comportaddr);if(Circ
5、In0) (*Char)=BufferCircOut; if(CircOutMaxBufLen-1)CircOut+; else CircOut=0; CharsInBuf-; Flag=0; return Flag;int SendChar(unsigned char Char)if(inp(comportaddr+5)&0x20)=0) return -1;outp(comportaddr,Char);return 0;main()int i,c;unsigned char InChar;整理为word格式Init_COM(COM232,COMINT,1200,8,1,0);while(1) if(kbhit() if(InChar=getch()=27)break; else while(SendChar(InChar); if(GetCharInBuf(&InChar)=0) printf(%c,InChar);Restore(); 友情提示:本资料代表个人观点,如有帮助请下载,谢谢您的浏览! 整理为word格式
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。