自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 高质量C++编程之内存管理

常见的内存错误及其对策    问题1: 内存分配未成功,却使用了它    解决办法:在使用内存之前检查指针是否为NULL。如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行检查。如果是用malloc或new来申请内存,应该用if(p==NULL)或if(p!=NULL)进行防错处理。    问题2: 内存分配虽然成功,但是尚未初始化就引用它。    问题

2012-12-25 08:14:55 535

原创 at91sam7x之看门狗定时器使用

 <br />at91sam7x之看门狗使用比较简单,但是刚开始设置WDT_MR确不成功.<br />函数如下:<br />//---初始化看门狗-----------------------<br />void Init_WDT(void)<br />{<br /> *AT91C_WDTC_WDMR = 0x3Eff2Eff; <br />}<br />//---复位  看门狗-----------------------<br />void ClearWDT(void)<br />{<br />  

2010-10-19 09:08:00 2119

原创 at91sam7x256之IIC(TWI)实验_PCF8563_AT24C02

I2C总线是由Philips公司开发的2线式串行总线,由于其简单、高效、互联成本小而被广泛地用于微控制器与外围设备的连接。AT91SAM7X256是Atmel公司于2005年推出的基于ARM7的工业级芯片,他以体积小、功耗低、连接方式广泛、处理资源丰富、控制灵活等特点受到嵌入式领域开发人员的重视。本文介绍AT91SAM7X256的I2C控制器TWI接口(two-wired interface)

2010-06-30 16:15:00 2760 2

原创 at91sam7x256与ads1256/ads1255的SPI通讯

<br />at91sam7x256通过SPI0控制SPI接口的LCD,按照开发板的iar例程,移植到keil中很轻松的搞定了。<br />可是at91sam7x256与TI公司的ads1256/ads1255通讯搞了两周始终有这样那样的问题,<br />现在通讯基本上正常了,当然还有些细节问题需要解决。<br />//at91sam7x256的SPI0初始化<br />void Init_SPI0(void)<br />{<br /> GPIO_A->PIO_OER  |=MOSI0 |MISO0 |SC

2010-06-29 12:03:00 5623 8

原创 at91sam7x256之SPI0与SPILCD

<br />又搞了半天,液晶模块显示功能搞定了。<br />LCD应该叫LCM,反正都是叫液晶模块,带字库的液晶12232E。<br />液晶与at91sam7x256连接是通过串口SPI连接的,这样节省了不少管脚,连线也少了。<br />基本上是开发板iar例子搬过来的,但是设置有些不同:<br />1,io初始化不同,因为iar例子里面都是开发板厂家自己写的程序,很乱,看不清楚。<br />    我自己对spi端口进行了初始化,也用了lib_at91sam7x256.h里的库函数,两个都可以用。<br

2010-06-08 12:01:00 1974

原创 at91sam7x256之串口uart0设置之二

<br />搞了两天,at91sam7x256之串口uart0终于搞定了,<br />一开始出现的问题是发送出来的数据不对,但是用串口调试助手给开发板发送数据,然后直接回送没有问题。<br />原因是串口波特率设置不对,我把晶振频率FOSC作为系统主时钟MCK用了,虽然检查半天控制寄存器US_CR和模式寄存器US_MR各个位的值设置都没有问题,也是不行的。<br />看了开发板例程中的board .h头文件,我才知道原来晶振频率FOSC作为系统主时钟MCK不同:<br />#define AT91B_MAI

2010-06-08 11:59:00 3718 2

原创 at91sam7x256之gpio与串口 uart0

 <br />at91sam7x256的gpio输出很简单,只要设置一下<br />PIO_OER寄存器,输出或者清零的时候操作PIO_SODR或PIO_CODR寄存器就可以了。<br />可是gpio输入状态读取的时候直接读取PIO_PDSR是得不到管脚高低电平状态的,<br />必须设置PMC_PCER相应位将PIO 控制器时钟使能,<br />手册上写道【对I/O 线电平读取时需要将PIO 控制器时钟使能,否则PIO_PDSR 读到的是时钟禁用时的I/O<br />线电平。】<br />串口(UA

2010-06-08 11:58:00 2037 2

原创 KEIL加jlink调试at91sam7x256之一

<br />按照keil for arm教程建个工程, 写主函数,操作GPIO,程序写好后编译没有问题,<br /> "at91sam7x.axf" - 0 Error(s), 0 Warning(s). <br />设置debug为JLINK, 程序下载到flash的时候,<br />提示 keil之out window窗口提示错误如下: No Algorithm found for: 00100000H - 001004E7H <br />很是郁闷,咋不行啊, <br />上百度google了一下搜索"

2010-06-04 15:15:00 3939 1

原创 jpg文件压缩

#include //这个一定要的  ... TJPEGImage *j=new TJPEGImage(); j->LoadFromFile("e://temp//aaa.jpg"); j->DIBNeeded(); j->CompressionQuality=2; //1..100 压缩率 高-->低 j->Compress(); j->SaveToFile("e://temp//aaa1.j

2010-04-16 15:55:00 606

转载 C++Builder非可视组件的消息处理技巧

一个非可视的组件必须对Windows操作系统或用户定义的消息作出响应。然而,由于一个非可视组件没有窗口,因此它也没有窗口句柄,自然它也不能接收到消息,为了解决这一问题,我们的思路是创建一个隐藏的窗口,使非可视组件能够接收到消息。  为了给你的非可视组件创建一个隐藏的窗口,需要有以下:  1.一个私有变量型(Private Variable)的HWnd来取得窗口句柄。  2.一个用来捕捉窗口发送给组

2009-08-06 11:22:00 543

原创 第二次使用C++BUILDER开发SOCKET通讯程序,工作完成

我想通过网络向设备(led屏)iP:192.168.224.250 端口号:2929 发送数据,比如发送unsigned char buf[1024]; 中的数据, 请问是用BCB中的         TClientSocket *ClientSocket1;         TServerSocket *ServerSocket1;         TUdpSocket *UdpSocket1;

2009-06-06 22:02:00 3720 1

转载 在CB中用socket api来写网络通讯程序

 关键字:socket,api,网络通讯程序,TCP,UDP 作者:kingcaiyao    更新:2003-09-10    浏览:14250本文转自csdn,作者:kingcaiyao原标题:在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)原文:  http://www.csdn.net/develop/read_arti

2009-06-02 20:23:00 1392

原创 dbgrid用两种颜色间隔分行显示

Delphi代码如下: procedure   TForm1.DBGrid1DrawColumnCell(Sender:   TObject;   const   Rect:   TRect;         DataCol:   Integer;   Column:   TColumn;   State:   TGridDrawState);     begin         with  

2009-04-20 11:15:00 1507 1

原创 c++builder对数据库中BLOB字段读写

SQL Server2000 我用的image 类型 //存储 TBlobField *blob_pic=(TBlobField *)UserMod->TInsert->FieldByName("IMAGE");     try     {         blob_pic->LoadFromFile(app_path+"//temp//temp.jpg");     }     catch(..

2009-02-17 08:38:00 3324

转载 Delphi中DHtmlEdit回车换两行的解决办法收藏

相信所有用到过DHtmlEdit  Ocx控件的朋友都遇到过这个问题,回车的时候,会产生标记,导致行间距过大,而 Shift+回车 就比较正常,原因是Shift+回车 产生的标记是 ;今天看到CSDN有朋友发问,顺手写个解决办法,当然办法不止一种,css也可以解决,这里顺着提问者的思路给出解决办法.  代码如下: view plaincopy to clipboardpri

2009-01-19 09:04:00 1319

原创 C++ Builder中消息机制的研究与应用技巧

     C++ Builder作为一种RAD方式的程序开发工具,提供了功能强大的集成开发环境。C++ Builder提供的VCL组件,封装了Windows的底层API和具体实现细节,也提供了对组件消息机制的良好封装。比如,可以对按钮控件(TButton)的单击、按下、拖动等事件消息设置相应的处理函数,并在对应的函数体中实现对该消息的处理与响应。虽然C++ Builder对VCL组件的消息

2008-11-05 16:06:00 1253

原创 我在BCB中实现消息处理的简单代码--XJQ2003

 一-//初始化 void  INITMessage(HWND pWnd,UINT uMsgID){    pWnd= Form1->Handle;    uMsgID=WM_FILEREADY;   pWnd=FindWindow("TForm1","Form1");//这个好象可以不要          if(pWnd==NULL)                  retur

2008-11-05 15:33:00 1392 1

原创 C++ Builder中消息处理过程及应用

C++ Builder作为一种RAD方式的程序开发工具,其全新的可视化编程环境、面向组件的开发模式无疑会大大地提高编程效率。它对繁杂的Windows 消息及API作了较全面的封装,编程者在大多数情况下不需理会Windows消息的细节,只要将心思放在组件的事件处理函数上即可。  然而,毕竟Windows操作系统是一个以消息驱动的系统,运行其上的应用程序,自然无法脱离系统之外,因此掌握并运用消息处

2008-11-05 15:23:00 1005 1

原创 CRC算法

//======CRC算法=============static unsigned short crctab[256]={0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,0x1231, 0

2007-12-11 13:49:00 754

原创 delphi中结束进程

Uses TLHelp32;procedure EndProcess(AFileName: string);constPROCESS_TERMINATE = $0001;varContinueLoop: BOOL;FSnapShotHandle: THandle;FProcessEntry32: TProcessEntry32;beginFSnapShotHandle := CreateToolh

2007-07-21 03:42:00 755

原创 单片机C51串口中断接收和发送测试例程(含通信协议的实现)

通信协议:第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个字节为前几个字节后7位的异或校验和。测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。 //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单

2007-07-21 03:37:00 2080

原创 CRC算法与实现

引言CRC的全称为Cyclic Redundancy Check,中文名称为循环冗余校验。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。实际上,除数据通信外,CRC在其它很多领域也是大有用武之地的。例如我们读软盘上的文件,以及解压一个ZIP文件时,偶尔会碰到“Bad CRC”错误,由此它在数据存储方面的应用可略见一斑。差错控制理论是在代数

2007-07-21 03:35:00 1080

原创 C++Builder中实现BMP,JPG图片格式的转换

#include void Bitmap2Jpeg(AnsiString bmpFile, AnsiString jpegFile){Graphics::TBitmap *bitmap = new Graphics::TBitmap();bitmap->LoadFromFile(bmpFile);TJPEGImage *jpeg = new TJPEGImage();try {jpeg->Assi

2007-07-21 03:30:00 4264 3

原创 delphi中Bmp转Jpeg JPG转BMP

;----Bmp转Jpeg----- uses Jpeg;procedure TForm1.Button1Click(Sender: TObject);VarJpg : TJpegImage;BMP : TBitMap ;beginJpg :=TJpegImage.Create;BMP :=TBitmap.Create;BMP.LoadFromFile(H:/Avi_图_Wav/跳.bm

2007-07-21 03:25:00 19109

原创 DOS系统下的实时多任务系统开发(RTKERNEL)

DOS系统下的实时多任务系统开发(RTKENERL) RTOS-32, RTKernel. 用于32位x86结构,Win32/NT兼容的嵌入式系统实时多任务操作系统, 用于DOS系统的实时多任务内核. 用于x86兼容CPU的非专利保护嵌入式操作系统, RTKernel是一个功能强大的实时多任务系统,它是被设计用来提供给那些希望在DOS .../*串口设置和创建"线程"任务*/#incl

2007-07-21 03:07:00 1479

原创 在C++ Builder中用Ole控制Excel表

笔者在实际工作中经常用Excel表做数据报表,大多数表格的数据都要从数据库中读取,这样我就用C++Builder做了一个报表程序,方便了很多,现在把它共享给C++Builder爱好者们,就算为丰富C++Builder的文档资料做点事情吧。  首先把Excel报表文件保存到一个指定目录下,最好放在可执行程序的子目录下,作为模板文件。可以把报表标题、表头等设置好。这里是保存在trpt子目录下。  然后

2005-07-29 15:28:00 1419 2

原创 Delphi图像存取另类解决方案

在《Delphi存取图像完整解决方案》一文中,笔者提供了一种DELPHI存取JPEG、BMP图像到数据库的解决方案,虽然它适用于ACCESS和SQL数据库,但它并不适用于所有数据库(比如PARADOX数据库中的GRAPHIC图像字段就不能采用该方法存取图像数据),下文将介绍DELPHI利用ASSIGN方法存取JPEG、BMP图像到数据库的另一解决方案来进行补充完善。演示数据库结构和窗口界面设计同前

2005-06-30 09:21:00 975

原创 发送电子邮件

关键字:任务条;发送电子邮件 怎样隐藏应用程序的任务条图标    首先,请看看这些术语。系统托盘是一个在任务条右角的小方框,在托盘了应用程序可以显示小图标 。任务条是可以在屏幕上伸展的工具栏。它就是程序图标所在的位置。想隐藏程序的任务条图标,你可以应用ShowWindow函数并传给它Application->Handle窗口句柄。ShowWindow

2004-02-26 14:36:00 4287

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