阅读:1847回复:9
串口通讯,急急
怎样在98下用vtoolsd 实现串行通讯。
要用到哪些函数和类,及具体的例子。 比如设置传输率、奇偶校验等,设置中断。 请各位赐教。 着急呀,做完了好回家。 :mad: |
|
沙发#
发布于:2002-08-08 11:04
Dear amei:
I remember that there are application code named by TTY in sample directory in MSDN CD disk. Best Regards, peter |
|
板凳#
发布于:2002-08-08 11:20
标准串口已经有驱动程序
串口通信用应用程序就可以做 没必要写vxd |
|
|
地板#
发布于:2002-08-08 12:18
yes的说
|
|
地下室#
发布于:2002-08-08 13:15
我刚好做完一个2000下的,给你,记得给分哦! :)
//创建时间:2002-8-5 //功能描述:发送字符到串口1的寄存器 //入口参数:usStrlen表示待发送字符串长度;PCHAR buf表示字符串缓冲区指针 //出口参数:无 //修改记录(修改人、修改时间、修改原因、修改内容等): //算法描述(较复杂程序): //备注: VOID SerialIoDevice::Send_string_com(USHORT usStrlen,PCHAR buf) { //设置通讯参数为9600,n,8,1 m_IoPortRange.outb(REG_3FB,0x80); //线控制寄存器高位置1,使波特率设置有效 m_IoPortRange.outb(REG_3F8,0x0c); //9600,若为18则为4800波特率设置, m_IoPortRange.outb(REG_3F9,0x00); m_IoPortRange.outb(REG_3FB,0x03); //线控制寄存器设置,8位数据位,1位停止位,无奇偶校验 m_IoPortRange.outb(REG_3F9,0x00); //禁止中断 //逐个发送字符 for(int i=0; i < usStrlen; i++) { while ((m_IoPortRange.inb(REG_3FD) & 0x40) == 0);//未发送则等待 m_IoPortRange.outb(REG_3F8,*(buf + i)); //发送字符 } } |
|
|
5楼#
发布于:2002-08-09 12:34
谢谢各位,我已经不用编串口了。
我现在在外地,一到这里就有种到家的感觉,真好。:) 请收分。 :cool: |
|
6楼#
发布于:2002-08-09 18:32
我不是driver大高手,但我擅长VC,写串口根本不用写驱动就可以很好的实现.用API中的就可以搞定,你可以看以下相关资料,简单的很.
|
|
7楼#
发布于:2002-08-11 11:41
我不会VC,但用VB搞过串口,感觉很简单!
|
|
8楼#
发布于:2002-08-11 12:39
串口通讯诗歌传统问题吗,你可以看一线MSDN和VS的SAMPL!完成SEND()和RECIEVE()即可!
|
|
9楼#
发布于:2002-08-13 09:21
记得有一个DCB结构可以做到,不用写驱动,有windows的api即可,
|
|