首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请问一个老有关问题:有关串口的异步操作

2012-04-19 
请教一个老问题:有关串口的异步操作原来一直在用单片机写程序,现在开始做上位机。好像windows提供了串口的

请教一个老问题:有关串口的异步操作
原来一直在用单片机写程序,现在开始做上位机。好像windows提供了串口的异步访问方式,能够提供非阻塞的串口操作函数。
我想知道有没有一种像单片机类似的中断处理方式,就是每当串口有数据进入是进入一个中断函数,在中断函数函数中进行相应的处理?因为要保证不因为程序的阻塞而丢失串口的任何数据。
是不是还可以使用开启新线程的方法来保证及时处理串口数据?要如何同步呢?
希望大家最好能给一个代码的示例,保证主程序在处理其他内容时能完全接收串口的数据即可。谢谢啦~~~

[解决办法]
推荐龚建伟的《Visual C++_Turbo C串口通信编程实践》,里面有控件和写好的类
你问的问题都有说到(参考CSerialPort类),看前几章就可以了
[解决办法]
打开端口

C/C++ code
pIniPort->hFile = CreateFile(_T("COM1"),                                 GENERIC_READ | GENERIC_WRITE,                                 FILE_SHARE_READ | FILE_SHARE_WRITE,                                 NULL,                                 OPEN_ALWAYS,                                         FILE_FLAG_OVERLAPPED,                                 NULL);
[解决办法]
探讨
引用:

推荐龚建伟的《Visual C++_Turbo C串口通信编程实践》,里面有控件和写好的类
你问的问题都有说到(参考CSerialPort类),看前几章就可以了

不想用MFC。。。要改写下

[解决办法]
缓冲区设置大一点,不用担心数据的丢失问题,驱动会为你缓存接收到的数据,只要缓冲区不被填满,不会因为不能及时读取数据而丢失数据

Serial Communications in Win32

热点排行