
串行口开发方法
5星
- 浏览量: 0
- 大小:None
- 文件类型:RAR
简介:
在Windows环境下进行串口编程操作时,可以通过该附件提供的文件内容进行操作。
在BCB工程目录内将这两个文件复制到指定位置:PortTalk.sys和PortTalk.h。这些文件已提供在附件中。通过调用PortTalk.h中的相关函数即可控制PC上的任意内存地址,请举个例子:
假设要发送数据至内存地址0x378,则执行如下操作:
1. 调用OpenFile()函数获取文件句柄
2. 使用SendData()函数发送数据
3. 返回接收方的数据缓冲区
以上即为操作流程。
OpenPortTalk(); 处理地址相关事务将地址$0xaa$赋值给outportb的参数$0x378$并将数据传输至并口数据寄存器该函数用于获取并口状态寄存器的值。StopPortTalk(); 终止地址处理我进行了初步测试,在ECPEPP模式下无法从外部总线读取数据。通过BIOS设置将并口配置调整为EPP模式更为简便。具体操作步骤如下:...在EPP模式下由口中指定一个决定EPP数据输入输出的二进制位置:第五个二进制位置。当设置该位置为1时允许外部输入数据;设置该位置为0时将作为输出端处理数据。程序如下:解析外部数据
定义一个名为CtrlWord的全局变量类型为unsigned char类型。
从地址十六进制 thirty seven a处读取输入端口并将其结果赋值给变量CtrlWord。
将结果与十进制数十六位二进制形式数值二十执行按位或运算。
将当前的CtrlWord值输出到指定地址 thirty seven a处。
首先读取地址十六进制 thirty seven c处的输入端口值;然后将该数值转换为十六进制字符串并添加到Edit1文本属性中。
将数据从内部传递至外端进行处理,并确保传输过程的高效性
定义 static 类型的变量 i;
声明 static 类型的变量 CtrlWord;
将地址 0x37A 的输入总线数据赋值给 CtrlWord;
对 CtrlWord 进行按位与操作掩码 0xDF;
将地址 0x37A 的输出总线数据设置为 CtrlWord 的当前值;
读取 Edit4 对话框中的文本并将其转换为整数赋值给 i;
将地址 0x37C 的输出总线数据设置为 i 的当前值;其中EPP的数据总口地址设置为$0x37C$(即基址$0x378$后加4个字节),经测试发现实际上使用$0x37C$和$0x378$的地址其结果完全相同。
全部评论 (0)


