自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (13)
  • 收藏
  • 关注

原创 _CtrIsValidHeapPointer(pUserData) 问题的解决!

<br />释放空间时 ,debug时出现_CtrIsValidHeapPointer(pUserData)的错误。<br />后来把动态类中的CString 类型全部换成char *类型。搞定了!原因可能是如果是CString类型的,代码删除一次。内部又释放一次,内部释放的时候找不到地方了。便出现了错误。个人之见!

2011-05-19 09:17:00 2052

原创 CDialog::CDialog(CWnd* pParent),由窗体对话框的构造函数联想到。

<br />CDialog::CDialog(CWnd* pParent)<br />{<br />}<br />如果创建CDialog对象时,构造函数参数为空,pParent为null。<br />如果想得到创建它的父窗体,在构造时直接CDialog cd(this).pParent将会获取父窗体的指针.<br />而不需要使用getParent()函数,以免发生错误.

2011-03-16 10:28:00 3440

原创 java关于package语句存在的意义。

<br />做了一个servlet程序,总以为package语句可以去掉,只要编译后的类文件放对位置就行。其实不是啊。在java虚拟机运行程序的时候,会根据配置文件和class文件查找文件的位置,没有package语句当然找不到文件。

2011-02-24 09:37:00 710

原创 jsp初学,tomcat有关,关于jsp无法打开,HTTP Status 500,javax/el/ELResolver问题的结局

<br />具体错误是这样的:<br /><br />HTTP Status 500 -<br />type Exception report<br /> <br />javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ELResolver<br /> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)<br /> javax.serv

2011-02-18 15:25:00 1757

原创 24点算法。c++。

没有用递归写。文中还有很多需要改正的地方。例如完全可以不用栈。

2010-11-26 13:00:00 697

原创 vc 曲线图 波形图。用VC++做了一个波形图。波形曲线由随机数生成。感觉还不错。见图片。

vc 曲线图 波形图

2010-11-24 20:14:00 4228 5

原创 查找两个字符串的最小字串。(原创,闲着无事,检验下自己的水平,请大家给予评论)

<br />#include "iostream"<br />#include "string.h"<br />using namespace std;<br />void main()<br />{<br />   char ch1[]="asdfghjkylasdfasdfhjdsfgsdfgsfgdsfgdfgadfgdsfgsdfgklfgh";<br />   char  ch2[]="asdmmmhjklsfdrgs dfgsdfgsdfgsdfgddsfgsdfgsdfggfdsfg";<br

2010-07-14 11:46:00 526

原创 题目:求100之内的素数   

#include "iostream.h"#include "math.h" void main(){  bool not_su=false; int i=0; for(i=2;i {  not_su=false;  for(int i_2=2;i_2  {   if(i%i_2==0)   {        not_su=true;    break;   }  }  if(not_su) 

2010-05-12 22:11:00 514

原创 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。没事写写程序,增加点点数。

#include "iostream.h"void print_(int a[]){ //int *b=a; for(int i=0;i {  cout }}int main(){ int a[11]={1,4,6,9,13,16,19,28,40,100}; int insert; int k=0;    for(int i=0;i {  cout }    cout cin>>inse

2010-05-12 22:08:00 2408

CP2102 中文资料 免费下载。usb to uart 的芯片!

CP2102 中文资料 免费下载。usb to uart 的芯片!免费供大家下载!!

2011-04-20

CH341驱动.不需积分。免费提供!

CH341的串口方式支持WINDOWS 98/ME/2000/XP/Vista/Linux,提供相关驱动程序, CH341的USB转串口支持大多数常用的串口监控及调试工具程序。 驱动安装方法: 1. 标准INF文件安装方法 WINDOWS提示找到新硬件,指定驱动程序所在目录DRIVER,自动安装驱动, 如果WINDOWS没有提示找到新硬件,那么在设备管理器的硬件列表中, 选择带问号的USB设备,更新驱动程序并指定目录。 2. 使用驱动程序安装工具 直接使用CH341SER.EXE安装包,可以安装/升级/卸载驱动程序, 该方法更适用于最终用户。 CH341串口使用方法: CH341实现USB转串口,在逻辑功能方面的使用方法与普通计算机串口相同。 与普通计算机串口的区别: CH341提供的是仿真串口,所以不支持串口本身的纯硬件操作,例如I/O操作, 普通计算机串口是静态设备,而CH341串口是动态设备,理论上随时会断开, CH341的附加功能(下面有介绍):读取外部串行EEPROM,支持更高波特率。 提供“模块调试”工具,启动后将“类型”选择为“手工输入发送”, 打开串口后就可以用于CH341串口或者普通串口的输入输出监控及收发调试。 注意事项: CH341串口是即插即用的USB设备,正在使用CH341串口进行数据传输的过程中, 不可以将其断开(断开是指从USB插座中取出CH341或者关闭CH341的电源), 也就是说,必须在应用程序关闭该串口后,CH341串口才可以从USB插座中拔出。 如果在应用程序使用CH341串口的过程中,CH341串口设备从USB插座中断开, 那么应用程序应该尽快关闭CH341串口并退出(关闭及退出可能需要数秒时间)。 如果在CH341串口通讯过程中发生错误,极有可能是CH341串口已经物理断开, 所以在检测到错误后建议关闭CH341串口,稍等两秒后再重新打开串口通讯。 采用设备事件通知的方法可以及时了解CH341串口设备的连接与断开, 从而使串口应用程序能够及时打开和关闭CH341串口。 串口动态链接库CH341PT.DLL提供了API,可以监视CH341串口插拔事件, 可以搜索和识别CH341串口等,具体需参考CH341PT.H文件。 如果通讯波特率较高,建议设置较大的缓冲区,尤其在WINDOWS 98/ME下, 线程调度能力和USB实时性都比WINDOWS 2000/XP差,如果串口接收缓冲区较小, 那么在通讯波特率较高时,接收大量数据会导致串口缓冲区溢出而丢弃数据。 由于底层的USB是将多个字节组成数据包后安插到各个1mS帧中进行传输, 所以有可能将串口收发的紧靠着的两个字节实际分割在两个USB数据包甚至 两个USB帧中,在最坏情况下这两个字节在时间上有可能相隔1mS甚至2mS。 ******************************************************************************* 如果需要速率控制(流控制),建议不要使用MODEM信号控制,因为其效率较低, 建议用CH341的TEN#和RDY#实现纯硬件的速率控制,其中TEN#为输入,RDY#为输出, 当TEN#输入为低电平时允许CH341从串口发送数据,高电平时CH341将暂停发送数据, 当RDY#输出为低电平时说明CH341可以接收串口数据,高电平说明CH341正忙而不能接收。 如果计算机及单片机不忙,或者波特率在115200bps以下时,通常不需要速率控制, 如果波特率再高或者计算机及单片机较忙,才需要考虑采用TEN#和RDY#进行速率控制。 CH341用于串口时,其硬件最简单时只需要三根线:GND,TXD,RXD, 可以直接与单片机相连,波特率支持从50bps到2Mbps,例如MCS51单片机: CH341引脚 MCS51单片机引脚 GND <=> GND TXD <=> RXD RXD <=> TXD TEN接GND 与单片机相连时,通常将CH341的TEN#引脚直接接地,总是允许CH341发送数据, 如果预算单片机可能会来不及接收串口数据,那么应该将TEN#连接到单片机的I/O引脚, 当单片机不忙时,由单片机将CH341的TEN#置为低电平,允许CH341从串口发出数据, 当单片机较忙时,由单片机将CH341的TEN#置为高电平,CH341将暂停从串口发出数据 CH341的TNOW引脚是收发状态,可以用于半双工通讯的收发切换,例如RS485的收发切换。 ******************************************************************************* 如何识别CH341串口,如何知道CH341的串口号COM? 在首次安装CH341串口驱动时,CH341串口号由WINDOWS自动分配(通常从COM3开始分配), 安装完成后可以在设备管理中点其属性修改串口号。由于应用程序事先无法知道CH341的 实际串口号,所以必须使用一些特殊方法识别出CH341串口,然后才能使用。 在WINDOWS 98/ME系统下,CH341串口号与当前硬件资源配置有关,默认为自动分配资源, 从而排在当前实际串口号之后,可以在串口属性中选择CH341资源配置来指定串口号。 在WINDOWS 2000/XP系统下,CH341串口号与当前所在USB端口有关,由首次安装时分配, WINDOWS记忆各USB端口CH341的串口号,可以在串口属性中通过高级选项指定串口号。 比较简单但很费事的方法是,在首次安装CH341串口后,用程序修改注册表或者点其属性, 人为将CH341的串口号修改为COM5,避开常用的COM1到COM4,该方法简单但是有可能冲突。 常规的识别方法是采用软件查询方法: 尝试以串口名称逐个打开,打开成功后通过该串口收发特殊字符串识别CH341串口, 该方法是从“COM1”开始,接着“COM2”逐个尝试打开串口。如果某个串口打开成功, 那么在300bps波特率下向该串口发出特殊字符串“CH341Ser?”,如果在约200毫秒之内 收到应答字符“W”,那么该串口就是当前已经连接的CH341串口。软件设计方法是: 从COM1开始依次打开每个串口,如果打开串口失败则跳过(串口不存在或正在使用), 如果打开成功则设置该串口波特率为300,然后向该串口写入ASCII字符串"$CH341Ser?", 注意大小写,共10个字符一次写入,如果该串口是普通串口,那么通常没有任何返回, 如果该串口是CH341串口,那么应用程序将能接收到一个ASCII字符"W",以此识别CH341。 例如,用串口监控/调试工具软件演示: 将串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出特征字符串,为10个ASCII码数据: $CH341Ser? 发送成功后,普通串口没有返回,而CH341串口将返回1个ASCII码: W 建议使用CH341PT.DLL动态库,应用程序可以直接调用DLL中相应的API识别CH341串口, 识别速度快,效率高。注意,CH341PT.DLL在INF中定义为可选安装,默认是安装的 ******************************************************************************* 关于读取外部串行EEPROM CH341可以外接I2C接口的器件,例如常用的24系列串行非易失存储器EEPROM, 支持24C01A,24C02,24C04,24C08,24C16等,以及与之时序兼容的器件, 24系列EEPROM既可以用于配置CH341,也可以用于断电期间保存重要数据。 例如保存产品序列号等识别信息,应用程序可以读出用于识别产品功能等。 如果需要支持24C64、24C256、24C512以及更大容量的EEPROM,请参考CH341评估板资料。 应用程序可以按串口方式读写CH341所连接的24系列EEPROM,方法是: 设置CH341串口波特率为300,然后以4字节为一组的命令包写串口, 命令包的首字节必须是@,地址符,对应的十六进制数为40H, 命令包的第二字节是24系列EEPROM的设备地址,位0是方向标志,0为写,1为读, 命令包的第三字节是24系列EEPROM的单元地址, 命令包的第四字节是准备写入24系列EEPROM的一个数据,如果是读操作则指定为00H, 如果是写操作,那么命令发送成功就说明写成功,对于EEPROM还要延时10mS才能下一个操作, 如果是读操作,那么命令发送成功后,可以从串口接收到一个字节的数据,就是读出的数据 例如,CH341连接24C0X,A2=A1=A0=GND,将仿真串口的波特率选择为300bps, 可以用串口监控/调试工具软件演示: 1、发出命令包,为4个十六进制数据: 40 A1 01 00 将24C0X中地址为01H的数据读出,可以从串口接收到一个字节的数据 2、发出命令包,为4个十六进制数据: 40 A0 2A 69 将一个字节的数据69H写到24C0X中地址为2AH的单元,通常等待10mS后才能进行下一个操作 3、发出命令包,为4个十六进制数据: 40 A5 E7 00 将24C0X中地址为02E7H的数据读出,可以从串口接收到一个字节的数据 注意,只有24C08和24C16中有地址为02E7H的数据单元 ******************************************************************************* 关于支持非标准波特率或者更高通讯波特率 对于一些非标准波特率或者常规方法无法设置的高速波持率,CH341驱动程序提供特殊方法, 应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率,方法是: 设置CH341串口波特率为300,然后以ASCII码字符串的命令包写串口, 命令包的首字节必须是#,井字符,对应的十六进制数为23H, 命令包的中间为不超过7个数字表示的波特率,例如字符串9600或者921600等, 命令包的尾字节必须是_,下划线,对应的十六进制数为5FH, 也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间,作为一个命令包, 在300bps下发送到CH341的串口,那么将被CH341驱动程序解释为修改CH341的波特率, 而不会被作为数据从串口真正发出,当该操作成功返回后, CH341实际工作于指定的新波特率,当然,计算机系统及串口控件仍然以为是工作于300bps, 如果需要再次以这种方法改变波特率,那么首先要用常规方法将CH341的波特率置为300bps。 例如,用串口监控/调试工具软件演示: 1、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出字符串命令包,为6个ASCII码数据: #9600_ 发送成功后,CH341将实际工作于9600bps 2、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出字符串命令包,为8个ASCII码数据: #460800_ 发送成功后,CH341将实际工作于460800bps 3、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出字符串命令包,为9个ASCII码数据: #1000000_ 发送成功后,CH341将实际工作于1000000bps CH341串口支持50bps到2Mbps的波特率,当应用程序请求CH341改变串口通讯波特率时, CH341驱动程序将波特率换算为波特率除数,然后修改CH341芯片内部的波特率除数寄存器, 所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器, 由于CH341内部的串口基准位时钟为48/8=6MHz(或12MHz),并且波特率除数只支持整数, 所以在指定波特率时,应该考虑实际换算误差,在波特率大于19200bps时的计算方法是: X = 6000000 除以波特率后的值 Y = X 四舍五入后的值 误差 = ( Y - X ) / X 以下为CH341支持的常用波特率,未注明的基准位时钟为6MHz,未注明的误差小于0.16% 921600 (12MHz), 460800, 307200 (12MHz), 230400, 153600, 128000 (0.27%), 115200, 76800, 57600, 56000, 38400, 33600, 28800, 19200, 14400, 9600, 7200, 4800, 3600, 2400, 1800, 1200, 900, 600, 300, 150, 134.5, 110, 100, 75, 50, 2000000, 1500000, 1200000, 1000000, 750000, 500000, 375000, 250000, 200000, 187500, 100000, 93750, 75000, 50000, 25000, 10000 其它波特率只要误差小于2.5%,CH341都可以支持,计算误差时要考虑两端的误差之和。 但是为了可靠进行通讯,建议不要使用误差大于1%的波特率。 ******************************************************************************* USB设备驱动程序与仿真串口驱动程序 CH341串口硬件的默认驱动程序是仿真串口驱动程序, 即在计算机端多出一个串口,并且在下位机端CH341芯片也使用串口通讯。 计算机端应用程序通过操作仿真串口实现USB数据传输,其用法与普通串口相同。 如果不希望在计算机端仿真为串口,那么可以使用USB设备驱动程序, 即在计算机端多出一个USB设备,但是在下位机端CH341芯片仍然使用串口通讯。 计算机端应用程序通过调用DLL提供的API实现USB数据传输, 其用法与CH341并口、CH372、CH375类似,可以参考相关的应用程序的源程序。 CH341串口硬件的USB设备驱动与并口硬件的USB设备驱动CH341PAR完全相同, 区别仅在于驱动安装信息文件INF中的PID不同(参考CH341PAR的INF中的注释行说明)。 *******************************************************************************

2011-04-19

pl2302 pdf datasheet,终于找到了。

pl2302 pdf datasheet,终于找到了。usb 转串口 .usb 转串口 .usb 转串口 .

2011-04-16

电子元件资料大全CHM格式!

电子元件资料大全 CHM格式,看着超爽!英文版本!非英文不看!

2011-04-01

达内科技 c++ 课件 免费分享【初学者福音】

达内科技 c++ 课件 免费分享【初学者福音】 课程介绍 C++ 语法基础 面向对象程序设计的概念 大量的编程实践 目标 熟练掌握C++语法 具有面向对象程序设计的概念与能力 能熟练阅读复杂的C++程序源代码 能独立的设计与完成面向对象的C++程序

2010-09-06

pki原理与基本应用

pki原理与基本应用,为doc文档。Public Key Infrastructure公钥基础设施。属于安全基础设施,是一个用公钥技术来实施和提供安全服务的具有普适性的安全基础设施。

2010-09-06

c趣味百例 doc格式

c趣味百例 doc格式 c,c++,趣味。对增加自己的编程能力很有用。

2010-05-12

100例C语言经典范例 doc 格式

100例C语言经典范例 doc 格式,c,c++经典,百题。

2010-05-12

The C++ programing Language pdf

The C++ programing Language pdf ,english editon.不错的入门与提升的书。

2010-05-10

how many items in each list are twice

As part of an arithmetic competency program, your students will be given randomly generated lists of from 2 to 15 unique positive integers and asked to determine how many items in each list are twice some other item in the same list. You will need a program to help you with the grading. This program should be able to scan the lists and output the correct answer for each one. For example, given the list 1 4 3 2 9 7 18 22 your program should answer 3, as 2 is twice 1, 4 is twice 2, and 18 is twice 9.

2010-05-03

求两个字符串的最长公共字串。

c,c++。也许和别人的不一样。不要嫌弃。

2010-03-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除