摘要:这个程序是我以前还不是很忙的时候随便搞的一个。主要参考了Enumeration源代码,用于查找句柄。由于QQ里的RichEdit并不是一般的RichEdit,不可以直接发送消息给它,所以废了一些周折。不过后来找到了解决问题的折中方法:利用模拟键盘将要发送的消息进行复制粘贴,然后再发送出去。 form1上的控件包含一个commonDialog:cdlbg用于打开文件的通用对话框,一个timer控件:timer1用于检查是否有新消息;两个Text控件text2用于接收和text1发送消息的文本框;两个picturebox:picture1用于载入背景。pictemp用于临时存储剪贴板上的图... 阅读全文
除零会导致内存溢出
2005-04-23 13:03 by htc开发, 261 阅读, 0 推荐, 收藏, 编辑
摘要:自从我接手这个激光机器小车项目之后,小车能走动了,不过老是经常死机。这两个星期一直在找死机的原因,刚开始考虑是硬件中断的原因。中断来不及处理导致死机。想办法把它改成接受8个字节后发生一次中断,这样就可以减少中断的次数。不过改了之后还是有死机的情况。随后,又将激光头的转速降低,还是有死机。没辙! 昨天睡觉的时候想这个问题,突然想到“除零”。除零会导致内存溢出。早上又一下子来了感觉,想到滤波程序中如果一个角都没有通过,则会出现“除零”的情况。遂大悟!连忙爬起来,赶到公司。改过之后,发现没有死机的情况了。 两个星期一直在找这个原因,结果就是因为这么小小的情况没有注意到。唉~~~~~~~~~惭 阅读全文
MSCOMM控件的属性
2005-01-26 17:13 by htc开发, 297 阅读, 0 推荐, 收藏, 编辑
摘要:MSCOMM控件的属性l CommPort :设置或返回端口代号。VB中有16个端口限制。MSComm1.CommPort=1 ‘使用Com1端口l Setting :设置初始化参数。以字符串形式设置或传回连接速度,奇偶校验,数据位,停止位等4个参数。如“9600,N,8,1”,奇为O,偶为E。 MSComm1.Setting=”9600,N,8,1”l Input :从输入寄存器传回并移除已被读取的字符。Buffer=MSComm1.Input ,读入Buffer字符串变量中l Output : 写入输出寄存器l InputLen:指定由串行端口读入的字符串长度。默认值为0,此值会使得控件的 阅读全文
串行端口脚位定义及其意义
2005-01-26 17:09 by htc开发, 318 阅读, 0 推荐, 收藏, 编辑
摘要:计算机正常启动后,RS232端口COM1、COM2、COM3、COM4的地址一般被安排在3F8、2F8、3E8、2E8,用于了解外部状态的寄存器地址则被分别设置为3FE、2FE、3EE、2EE,用于控制外部设备的寄器地址则被设置3FC、2FC、3EC、2EC,。RS232接口的针脚安排如下: D型25芯接头 D型9芯接头 pin8....CD pin1 pin3...RxD pin2 pin2...TxD pin3 pin20..DTR pin4 pin7....SG pin5 pin6...DSR pin6 pin4...RTS pin7 pin5...CTS pin8 pin22...RI 阅读全文
串行端口地址及寄存器功能详细资料
2005-01-25 13:35 by htc开发, 890 阅读, 0 推荐, 收藏, 编辑
摘要:PC机上,COM1和COM2的地址是3F8~3FF 及2F8~2FF,在这个范围内的每个地址都有不同的功能,这些功能分别通过寄存器来实现,读写这些寄存器就可以执行与串行端口相关的功能。而所谓的寄存器就是暂时存放信息的地方,这些被存放在此的信息是以位的形式存储,通常以8个位(一个字节)作为一个单位。读写这些寄存器地址的同时,也就是读取这些代表的状态或控制某些功能。 COM1COM2寄存器名称简称3F82F8波特率分频器(低八位)BDR3F92F9波特率分频器(高八位)BDR3F82F8传送信息/接收信息寄存器DR3F92F9中断启动寄存器IER3FA2FA中断辨识寄存器IIR3FB2FB传输线控 阅读全文
VB中自动检测串口输入
2005-01-24 11:15 by htc开发, 675 阅读, 0 推荐, 收藏, 编辑
摘要:VB6.0中,通信控件在“工程” ――“部件”,选中 Microsoft Comm Control6.0其文件为 mscomm32.ocx该控件唯一的一个事件就是OnComm事件。随着CommEvent属性值的变化,其后的Case程序代码便被引发。如此就是自动检测了。(区别于定时检测)On comm事件中Select case mscomm1.CommEvent Case comEvCD ‘CD线的状态发生变化 If mscomm1.CDHolding then ‘如果DCD脚位电位为高 Else …. End if Case comEvCTS ‘CTS线的状态发生变化 Case comEvD 阅读全文
VB中如何在类模块和主程序间传递数组
2005-01-19 16:09 by htc开发, 389 阅读, 0 推荐, 收藏, 编辑
摘要:'做参数时不要指定大小.'在类中如下定义Public Sub Run(resultcir() As Single)MsgBox UBound(resultcir)resultcir(2) = 12345End Sub'窗口中这样用:Private Sub Command1_Click()Dim a(9) As SingleDim aa As New Class1aa.Run a()MsgBox a(2)End Sub 阅读全文
传递不定个数的参数
2005-01-19 15:07 by htc开发, 227 阅读, 0 推荐, 收藏, 编辑
摘要:传递不定个数的参数如果要传递不定个数的参数给过程,则须把参数表中最后一个参数声明为一个带关键字“ParamArray”的变体数组。例如:Sub MySub(ParamArray P()) '参数定义为一个数组以下可能的调用:MySub"ABC"MySub 1,3,9,988,776,234MySub 123,"abc",Date()可用以下的方法来读每个参数:For i=0 To UBound(P) 'P(i)为第i个参数Next 阅读全文
数字地和模拟地的区别
2005-01-18 16:53 by htc开发, 481 阅读, 0 推荐, 收藏, 编辑
摘要:简单来说,数字地是数字信号的对地,模拟地是模拟信号的对地。 由于数字信号一般为矩形波,带有大量的谐波。如果电路板中的 数字地与模拟地没有从接入点分开,数字信号中的谐波很容易会 干扰到模拟信号的波形。当模拟信号为高频或强电信号时,也会 影响到数字电路的正常工作。 存在问题的根本原因是,谁也无法保证电路板上铜箔的电阻为零, 在接入点将数字地和模拟地分开,就是为了将数字地和模拟地的 共地电阻降到最小。 阅读全文
关于中断的详细阐述,包括如何写中断服务程序
2005-01-18 09:30 by htc开发, 756 阅读, 0 推荐, 收藏, 编辑
摘要:关于中断一个完整的中断过程由中断请求、中断判优及屏蔽、中断响应、中断处理及中断返回五个部分组成。在8086/8088微机系统中,中断源的优先权由高到低的顺序依次为:除零数、INT n、INT o、NMI(非屏蔽中断)、INTR、单步执行中断.8259A芯片的外部特征:(1)片选取信号(CS) (2)写信号(WR)(3)读信号(RD) (4)D0~D7:8条数据总线(5)GND:地信号 (6)Vcc:+5V电源(7)INT:中断请求信号(8)中断响应信号(9)IR0~IR7:8个中断请求输入信号(10)A0:地址选择信号(11)SP/EN:从片编程/允许缓冲器信号(12)CAS0~CAS2:这三 阅读全文