- 博客(64)
- 资源 (4)
- 收藏
- 关注
转载 pic24bootloader
//PIC24系列的串行自举(Bootloader)代码设计如下://文件名:boot.c,该文件调用memory.c和C30编译器系统配置文件config.h。//本Boot代码兼容AN851通信协议,是在PIC24F和PIC16/18 的AN851基础上开发出来//的最新版本。#include "PIC24F Serial Bootloader\config.h"//全局变量WOR
2016-01-14 03:57:08
2563
原创 Ultedit 配合 astyle 格式化C代码
这是我亲测可用的且是最好用的工具了。再Ultedit 高级 中 点击 工具栏配置得到下图,在命令行中 输入:"C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\GNU\astyle.exe" --style=ansi --mode=c %f千万切记,引号是一定要有的,为此我研究了好一阵子。在 输出 那一栏里选
2016-01-14 03:20:03
599
原创 乘法器型号
AD834 800MHz 可用带宽AD734四象限模拟乘法器(带宽仅为10MHz)、AD539二象限模拟乘法器(带宽为60MHz)、AD534四象限模拟乘法器(带宽为60MHz)
2014-09-19 10:40:01
1459
转载 退耦电容
所谓退耦,既防止前后电路网络电流大小变化时,在供电电路中所形成的电流冲动对网络的正常工作产生影响。换言之,退耦电路能够有效的消除电路网络之间的寄生耦合。 退耦滤波电容的取值通常为47~200μF,退耦压差越大时,电容的取值应越大。所谓退耦压差指前后电路网络工作电压之差。 如下图为典型的RC退耦电路,R起到降压作用:
2014-08-26 05:48:44
1718
原创 开发板日志
2014-7-15板子焊好后,通电测试,各点电压正常。将SWD两个端子连接到JLink的SWD端子上(7,9),下载程序无反应。请教秦总后得知需将电源正负也接到JLink上,改为4线连接后(7,9,1,4)端后,第一次能够下载程序,接着就再也下载不了了。查阅资料得知,MCU运行的程序会干扰SWD工作,如果不使用JLink的自动复位端的话,需要在点击下载按钮后
2014-07-17 13:40:51
749
转载 c#视频流畅录制
从网上找了很多关于视频捕捉录制及压缩的资料,发现大多数的视频在录制过程中,呈漏斗状,稍微动一下,就成亲箭头状结束了录制.在相关人士指导下(表示感谢),解决了这个问题.现整理出相关代码. 1、首先定义一个底层类AviCapture.csusing System;using System.Collections.Generic;using System.Text;using
2014-05-12 07:40:07
2072
转载 Altium Designer如何用AGND、DGND组织不同器件的引脚,同时处理好不同网络之间的直接连通
先说好,本帖不讨论有没有必要区分AGND和DGND,只是在需要区分的时候确保可以分得明确。首先原理图上想区分就要用两个网络标识,模拟器件的地接AGND,数字器件的地接DGND或者直接写作GND。照这法子,起码元件布局的时候会留意就近摆放。然后在PCB上,两个地各走一边,那么如果希望一点接地,总有短接的时候。这个短接点可以用一条线路直接画在两个地之间来实现,但是这样DRC会报错。
2013-12-30 10:25:08
8114
转载 sram
SRAM存储器主板的操作确认 对已完成的SRAM存储器主板进行操作。在MSDOS模式下启动,利用DEBUG指令,从D0000h开始试着进行数据的读/写操作。如果确认了主板能够正常运行,则为各份电源连接器(CN2)提供电源,去掉个人计算机的电源,损耗电流在40μA左右。重新启动MS-DOS模式,读取刚才写人的地址,因为能够读出所写人的数据,因而可知各份电源是起到了相应的作用的。
2013-11-15 13:28:20
2490
转载 在C语言中使用位带操作
转自 >第五章(87 页~92 页)。不幸的是,在 C 编译器中并没有直接支持位带操作。比如,C 编译器并不知道同一块内存能够使用不同的地址来访问,也不知道对位带别名区的访问只对 LSB有效。欲在 C中使用位带操作,最简单的做法就是#define一个位带别名区的地址。例如: #define DEVICE_REG0 ((volatile unsigned long *) (0x400
2013-09-28 06:40:44
2115
原创 关于串口,重启计算机后总是连接不上,用串口调试工具打开一次以后才能连接上
关于串口,重启计算机后总是连接不上,用串口调试工具打开一次以后才能连接上的这个问题,以前遇到过后来不知道改了哪里就又没事了。这几天做串口程序,又出现上述问题,郁闷不得了。在网上找到一个跟帖子描述的内容跟我这个毛病差不多,也是不知道怎么以修改就好了。http://bbs.youkuaiyun.com/topics/300087092。我用两台机器互联发现,重启计算机后直接连接发送内容时,另一台计算机接收到的
2013-09-12 16:33:45
15603
1
转载 串口的超时设置(加心得)
在WIN32 API编程中,除了DCB结构之外,还需要了解COMMTIMEOUTS结构.这个结构是为了读写串口的超时而设置的. COMMTIMEOUTS结构如下: typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; //任意相邻连个字符之
2013-08-19 16:24:31
22486
1
转载 晶体管的名称属性——IGBT和MCT
总的来说, 晶体管可以划分为两类:双极型晶体管(BT)和场效应晶体管(FET)。它们的基本特点分别是:双极型晶体管是两种载流子都参与工作的器件,通过的电流主要是少数载流子的扩散电流,是电流控制的器件,BJT和可控硅等晶闸管都是典型的双极型晶体管;场效应晶体管是一种载流子——多数载流子工作的器件,通过的电流主要是多数载流子的漂移电流,是电压控制的器件,JFET、MESFET、HEMT、MOSFET都
2013-08-07 20:33:25
1768
转载 标准C或C++没有的数据类型
标准C或C++没有的数据类型 数据类型 说明 BOOL 布尔变量,实际上是UINT COLORREF 用作颜色索引的32位整数 DWORD 32位的无符号整数 HANDLE 32位的无符号整数,用作句柄 HINSTANCE 32位的无符号整数,用作实例句柄 HWND 32位的无符号整数,用作窗口句柄 HDC 一个设备描
2013-08-06 10:30:54
767
转载 win32数据类型
win32数据类型一览Windows数据类型 本质类型 字节数 定义过程(来历) 含义 ATOM unsigned short 2 unsigned short→WORD→ATOM 在Atom表中,一键(16位整数)一值(一个String)为一个Atom。 BOOL int * int→BOOL 逻辑变量,布尔值 (取值为 TRUE 或 FALSE) BOOLEAN unsigne
2013-08-06 10:29:50
766
转载 _stdcall,_cdecl区别
_stdcall,_cdecl区别在看代码的时候遇到很多_stdcall修饰的函数,不明所以,查了些资料,记录如下:(1) _stdcall调用 _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。 WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题: #define WINAPI _s
2013-07-23 17:39:48
634
转载 编译时去掉msvcr100
Release版本打开 Visual Studio, 打开 project Properties.打开 Configuration Properties | C/C++ | Code Generation找到 Runtime Library setting. 将 Multi-threaded DLL (/MD) 改为 Multi-threaded (/MT)Rebuild.
2013-07-23 17:28:32
678
原创 串口
RS-232C接口定义(DB9) 引脚 定义 符号1 载波检测 DCD(Data Carrier Detect)2 接收数据 RXD(Received Data)3 发送数据 TXD(Transmit Data)4 数据终端准备好 DTR(Data Terminal Ready)5 信号地 SG(Signal Ground)6 数据准备好
2013-07-23 16:27:46
546
原创 关于mutex的一些理解
自己写了一个类,用于互斥class CMutex {public: CMutex() { m_lock=CreateMutex(NULL,FALSE,NULL); } ~CMutex(){} void Lock() { WaitForSingleObject(m_lock, INFINITE); } void UnLock() { ReleaseMu
2013-03-27 11:39:22
1668
转载 如何在C/C++中动态分配二维数组
在C/C++中动态分配二维数组可以先申请一维的指针数组,然后该数组中的每个指针再申请数组,这样就相当于二维数组了,但是这种方法会导致每行可能不相邻,从而访问效率比较低。如何申请连续的二维数组了?本文将分别三个方面讲解:一.动态申请列大小固定的二维数组二.C语言中动态申请连续的二维数组三.C++语言中动态申请连续的二维数组一.动态申请列大小固定的二
2013-03-16 17:41:49
564
转载 查看文件大小
#include #include #include #include using namespace std;void main(){ char *filepath = "C:\\1.txt"; //方法一 HANDLE handle = CreateFile(filepath, FILE_READ_EA, FILE_SHARE_READ, 0, O
2013-03-12 14:35:32
579
原创 获取DDB图像的内容
网上大部分资料都是将DDB转换为DIB后,得到图像内容的,可直接得到DDB内容的资料并不多,下面我以截屏为例说下怎么得到DDB的内存,一些API是我从网上找到的,根据我的理解使用的,可能用的不很准确,请大家指出.我没用mfc,以下全是API调用。void TestGetDDB(){ // 设置截屏大小 LPRECT lpRect=new RECT; lpRect->top=0;
2013-03-11 07:05:08
643
转载 VS2008、VS2010中如何屏蔽讨厌的MSVCR*.dll的引用
方法就是修改一下编译选项,将/MD选项改为/MT选项,最终的可执行文件就不会包含对那些VC运行时DLL的引用了,可以很方便的发布和部署。真是个非常棒的消息,让一个纠结了我两年多的问题得到了彻底解决。首先让我们来看下这个云遮雾罩的编译开关究竟是干什么的?MSDN中的描述如下:/MD 使应用程序使用运行时库的多线程并特定于 DLL 的版本。定义 _MT 和 _DLL,并使编译器将库名
2013-03-04 14:34:24
872
转载 Unicode字符集与MBCS字符集转换
今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写入文件发现 每个字符与字符之间都有一个空格存在,而且有内容丢失。原来CString类对象GetBuffer(),后以后还是unicode编码,所以必须将宽字符转换成char类型那就必须用到一个函数在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符
2013-02-26 10:59:12
520
转载 重叠I/O模型的概念
一.重叠I/O模型的概念当调用ReadFile()和WriteFile()时,如果最后一个参数lpOverlapped设置为NULL,那么线程就阻塞在这里,直到读写完指定的数据后,它们才返回。这样在读写大文件的时候,很多时间都浪费在等待ReadFile()和WriteFile()的返回上面。如果ReadFile()和WriteFile()是往管道里读写数据,那么有可能阻塞得更久,导致程序性能下
2013-02-24 12:01:51
2637
转载 winsock重叠IO模型
[cpp] view plaincopy//服务端 /* 。在程序清单7-8 中,我们向大家展示了如何构建一个简单 的服务器应用,令其采用前述的方法,通过完成例程,来实现对一个套接字请求的管理。该程序的编 码主要按下述步骤进行: ① 新建一个套接字,开始在指定端口上,监听一个进入的连接。 ② 接受一个进入的连接请求。
2013-02-24 11:03:32
836
转载 TCP和UDP 协议发送数据包的大小
TCP和UDP 协议发送数据包的大小在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分析,对于其他情况,或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,传输层,
2013-02-22 17:58:08
807
原创 有了vb.net,C#就是个鸡肋
这几天做个小东西,需要.net支持。于是第一次开始了我的.net 之旅,首先得选择用vb.net还是C#。一直听说C#是.net的首选,于是俺先用了C#,可是用了就发现,C#根本就少了很多东西,不能很方便的支持COM,就是一个很致命的东西。像我这样做设备界面开发的人来说,没有COM 寸步难行,可是C#竟然不支持。没办法,只好用vb.net试试吧,刚用vb.net了没1分钟,我就喜欢上了vb.net
2013-02-08 12:19:36
4606
13
转载 得到当前时间
void get_time(void){ time_t now; time(&now); // 定义两个变量,存储转换结果 struct tm tmTmp; char stTmp[TIME_MAX]; // 转换为tm结构 localtime_s(&tmTmp,&now); // 转换为字符串并输出 asctime_s(stTmp,&tmTmp);
2013-01-31 14:32:57
486
转载 ADOPENKEYSET ADOPENDYNAMIC
CursorTypeRecordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:--------------------------------------------------------------常数
2013-01-31 13:39:12
1165
转载 ATL、MFC、WTL CString 的今生前世
ATL、MFC、WTL CString的今生前世上文分析了ATL、MFC CString的设计和实现,我们不禁会疑问,为什么ATL和MFC的CString头文件要搅在一起?上文的分析有些杂乱,我们通过一张图来更加清晰的观察,如下: 上图中,用圈圈住的头文件表示ATL头文件,没被圈的代表MFC头文件。另外,在头文件旁边字符,表示各个头文件中实现的类。 现在让我们仔细观看,整个
2013-01-30 17:15:14
765
转载 在win32控制台应用程序中实现定时器
1.SetTimer:在控制台应用程序中同样可以用SetTimer实现定时器的效果。示例代码:#include#includeusing namespace std;void CALLBACK TimeProc( HWND hwnd, UINT message, UINT idTimer, DW
2013-01-25 08:03:53
3241
转载 sprintf用法大全
sprintf用法大全 printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗?在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。 由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者
2012-11-30 13:31:23
937
转载 vc6++BYTE,WORD,DWORD和一些宏定义
一、定义在VC6.0的Microsoft Visual Studio/VC98/Include/windef.h 里,定义了BYTE,WORD,DWORDtypedef unsigned long DWORD;typedef unsigned char BYTE;typedef unsigned short WORD;在Vi
2012-11-26 17:07:05
2873
转载 VNC协议分析
VNC协议分析 简介 VNC(Virtual Network Computing)是基于RFB(Remote Frame Buffer)协议进行通信的,是一个基于平台无关的简单显示协议的超级瘦客户系统,由Cambridge的AT&T实验室设计开发的。vnc的缺省端口是main:5900(C/S)和http:5800(B/S)端口。RFB (远程帧缓存) 是一个远程图形用户的
2012-10-09 18:03:44
1781
转载 VNC源码阅读笔记
VNC源码阅读笔记VNC源码阅读笔记 我阅读的是VNC官方下载的4.1.3版本的源码。下面是Windows版本的VNC客户端源码阅读笔记。while (!hosts.empty()) {char* hostinfo = hosts.front();Thread* connThread = new CConnThread(hostinfo);//创建一个连接线程strF
2012-10-09 16:50:30
1244
转载 VNC源码阅读--VNC图像更新机制
VNC源码阅读--VNC图像更新机制 VNC的图像更新机制核心为,桌面区域更新记录策略和更新区域通知策略。桌面更新区域记录主要是通过hooks记录桌面上变化的矩形区域,只记录更新的矩形区不记录具体更新的数据。更新区域记录步骤大致如下:1.wm_hooks截获桌面变化的相关消息,并转化为自定义的消息发送给WMHooksThread线程处理。 2. WMHooksThread 中用Sim
2012-10-09 16:47:00
3086
转载 WINVNC源码分析(四)
WINVNC源码分析(四)-vnchooksVNCHOOKS是一个设置全局钩子的动态链接库。先看入口函数view plainBOOL WINAPI DllMain (HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved) { // Find out why we're being called
2012-10-09 16:46:13
2566
转载 WINVNC源码分析(三)rdr
WINVNC源码分析(三)rdrrdr是winvnc用来io操作的一个库工程。IO操作无非两种,写入和读取数据,所以这里每个类都相应地分成了IN和OUT两种操作,先分析IN。 view plainclass InStream { public: virtual ~InStream() {} // check() ensures there is buff
2012-10-09 16:45:16
1507
转载 WINVNC(二)omni_thread
WINVNC(二)omni_threadomni_thread是一个C++的跨平台的线程包装库。接口文件omnithread.h可以看出一般的跨平台编码的方式:首先通过宏来判断目前所在的操作系统平台(如果你编译的时候出现了“No implementation header file”的提示,请在此文件查找对应的宏,我用的是WIN32系统,所以预定义了__WIN32__),然
2012-10-09 16:44:38
1871
winpcap(包含头文件,库文件和dll)
2013-02-28
com0com虚拟串口
2010-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人