嵌入式C/C++
文章平均质量分 81
七水_SevenFormer
你好,硬件工程师
展开
-
格式化
格式化是一种把其它不是字符串类型的数据转化为CString类型的最常用技巧,比如,把一个整数转化成CString类型,可用如下方法:CString s; s.Format("%d", total); 在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CSt转载 2012-02-03 00:07:09 · 930 阅读 · 0 评论 -
2812的C语言中的.reset段的含义以及其在存储器中的定位
问题如下:疑问一:仿真调试下载程序或把程序已烧写至FLASH后脱机上电运行程序时,程序是不是必须要执行“从0X3F FFC0处复位→执行0X3F FC00地址处的初始化引导函数(Initboot) →根据GPIO选择引导模式→确定用户程序入口地址→从入口处开始执行用户程序”这一系列过程吗?对于用C语言编程时,通常在复位地址向量处(对于F240而言,复位地址在0X0000地址处?),常需要放原创 2012-02-03 00:11:35 · 3912 阅读 · 4 评论 -
EZ-USB 68013学习笔记--CYAPI的使用之批量传输方式
cyapi一些重要函数说明见:http://blog.csdn.net/lg2lh/article/details/7369793最近一直在调slavefifo,做上位机的时候总是调不过去,总是报错:说内存不能为写。或者乱起八糟的错误。我总结了一下应该注意一下几点:1、cyapi.lib这个库的位置放在哪,在工程中添加的lib文件路径要和Tools->Option->directories原创 2012-03-22 11:35:58 · 9288 阅读 · 1 评论 -
VC基础问题集锦
对话框应用程序中怎么得到当前窗口的句柄呢?每一个从Cwnd类派生出来的类都有一个成员变量m_hWnd,即指向当前窗口的句柄,直接使用它即可。 其中从CWnd类派生出来的类有CFrameWnd、CDialog、CView、CControlBar等等GetSafeHwnd() 或者直接使用 m_hWnd0、此类错误的解决办法error C2143: syntax error :原创 2012-05-03 21:47:09 · 1310 阅读 · 2 评论 -
VC选项卡控件的使用方法
建立选项卡控件不是简单的将选项卡控件拖置MFC面板就可以的,每个选项页我们必须建立一个对应的对话框资源,主要分为以下几个步骤1、建立一个主对话框2、放置CTabCtrl控件,类向导中关联变量名为m_Tab。要做一个具有四个选项页的选项卡,所以对应建立对应四个对话框资源,style属性设为Child,None,用ClassWizard生成新的类,基类为Cdialog,分别为Cpa原创 2012-04-29 09:03:51 · 2441 阅读 · 0 评论 -
68013API函数说明
写数据的步骤:1、打开设备:USBDevice->Open(DeviceIndex);2、获得USB批量传输的断点:OutEndpt = USBDevice->EndPoints;3、确定设备打开则创建线程函数:AfxBeginThread(XferLoopw, this);4、打开事件对象:outOvLap.hEvent = CreateEvent(NUL转载 2012-03-19 17:16:02 · 8954 阅读 · 2 评论 -
逻辑坐标,物理坐标,以及双缓冲法画图方法详解
这是我用的是对话框中的PICTURE控件,其实pictures控件就是一个静态文本控件。我这个例子是基于对话框的。不是基于单文档应用程序的。首先我们需要搞清楚两个VC中的坐标系。窗口坐标=逻辑坐标=DC中实际画图函数用的坐标、比如moveto(),lineto()中的参数对应的都是逻辑坐标,画图用的。视口坐标=设备坐标=物理坐标(一个坐标点对应一个像素,可以这么理解)实际显示器大小原创 2012-03-17 21:14:41 · 3760 阅读 · 0 评论 -
MFC中创建了一个类,在classview中找不到了。
1、切换到 FileView ;2、找到看不到那个类的头文件;3、打开头文件,随便按个空格什么的,就出来了;4、不要保存头文件,关闭即可。转载 2012-03-17 11:39:34 · 1211 阅读 · 1 评论 -
C语言的赋值兼容与AD采集显示
u16 adcx; float temp; while(1) { adcx=Get_Adc(ADC_CH0); LCD_ShowNum(156,130,adcx,4,16);//显示ADC的值 temp=(float)adcx*(3.3/4096); adcx=temp; LCD_ShowNum(156,150,adcx,1,16);//显示电压值 temp-=adc原创 2012-02-24 21:39:09 · 1844 阅读 · 0 评论 -
关于2812的bootloader与中断向量表之间的关系——DSP2812启动过程
转载请注明出处:http://blog.csdn.net/lg2lh/article/details/8036267一、2812的中断向量表首先2812的中断向量表映射的地址是由4个标志位决定的:VMAP,M0M1MAP,MP/MC,ENPIE。而系统复位时VMAP=1,ENPIE=0,根绝中断向量表映射配置表可知,此时中断向量表映射在BootROM区域,地址:0x3FFFC0~0x3原创 2012-10-02 12:30:01 · 6747 阅读 · 0 评论 -
lwip—mem_init和mem_malloc详解
lwip—mem_init和mem_malloc详解原创 2014-06-27 09:46:59 · 7974 阅读 · 1 评论 -
MSP430 AD模块笔记
1、关于EOS位, 该位是设置位,并不是状态位,即若那个转换结果寄存器的控制寄存器的该位置1 ,则说明该转换寄存器对应的转换通道为转换序列的最后一个通道。2、 单通道单次转换模式,和单通道重复模式,EOS无效,EOS只用于序列通道转换。指示最后一个转换通道的。3、单通道重复转换,转换的结果都存在了一个寄存器中,至于怎么重复的,就是不断的在那个通道进行转换,除非你软件停止它原创 2012-04-26 10:37:37 · 2535 阅读 · 0 评论 -
lwip-内存管理函数说明
1、mem_init() : 内存堆初始化函数,主要设置内存堆的起始地址,以及初始化空闲列表,lwip初始化时调用,内部接口。2、void *mem_malloc(mem_size_t size) : 申请分配内存,size为需要申请的内存字节数,返回值为最新分配的内存块的数据地址,注意不是内存块的地址。如果为分配好内存,返回NULL。申请的内存堆是全局变量。原创 2014-06-27 16:26:54 · 1989 阅读 · 0 评论 -
链表的常见操作
链表是数据结构的重要内容,在计算机程序中应用广泛,同时也是各公司笔试题目的重点。以下简单实现了链表的一些操作,包括创建、增加节点、删除节点、单链表逆置、合并有序链表等。一、链表创建 链表主要有三种形式,包括单链表、双链表和循环链表。 单链表每个节点只包含一个后驱指针,双链表节点同时包含一个前驱指针和一个后驱指针,循环链表的尾节点的后驱指向头节点。转载 2014-06-30 13:36:11 · 1039 阅读 · 0 评论 -
2812 中断C语言定义方法-typedef interrupt void (*PINT)(void)
引用请注明出处,谢谢:http://blog.csdn.net/lg2lh/article/details/7459138http://blog.renren.com/blog/88077787/713175971?frommyblog函数型指针 一个函数被执行时,在程序空间中占据一定空间,这个空间的起始地址是用函数名来表示的,称为函数的入口地址。也可以用指针指向原创 2012-04-13 20:08:09 · 7841 阅读 · 2 评论 -
const 的总结
转自:http://blog.csdn.net/Eric_Jo/article/details/4138548 1、定义常量(1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。TYPE const ValueName = value; const TYPE ValueName = value转载 2013-01-08 11:35:53 · 793 阅读 · 0 评论 -
关于整数提升中rank的说明
看到博客:http://blog.chinaunix.net/space.php?uid=23629988&do=blog&id=2938697中关于整数提升的规则解释,对其中的rank开始理解,原文如下: 整数提升:整数提升可以应用于所有的操作数,下面是整数提升的规则:如果两个操作数具有相同的类型,那么不需要任何的转换;不然,如果两个操作数同为有符号整数或者同为无符号整数,则ra原创 2013-01-07 10:51:33 · 1164 阅读 · 0 评论 -
MFC 类继承关系图 Hierarchy Chart
原创 2012-03-14 08:50:22 · 1620 阅读 · 0 评论 -
修改对话框picture控件背景颜色的方法
两个方法:1、手动指定程序的picture大小:设一个CStatic的对象(picture控件是CStatic类型的):m_pic2;且定义该picture控件的标识ID为IDC_STATIC_PIC2;首先要在OnInitDialog()中完成获取picture控件的设备环境,即其DC。一个方式:通过m_pic2.m_pic2.SetWindowPos(NULL,0,0,51原创 2012-03-14 21:21:14 · 6396 阅读 · 4 评论 -
Linux设备驱动开发学习步骤
http://lwj8666.blog.163.com/blog/static/18966939200932863740911/最近在学习这个linux设备驱动开放这一块,因为是自学的所以摸不到头绪,经过一段时间的摸索,现在又了一点认识,所以我在这里就来写一下1. 学会写简单的makefile2. 编一应用程序,可以用makefile跑起来3. 学会写驱转载 2012-03-02 14:41:49 · 795 阅读 · 0 评论 -
malloc函数使用注意
原型 :extern void *malloc(unsigned int num_bytes); 返回值是void* 类型,C,C++规定,void* 类型可以强制转换为任何其它类型的指针。既其返回的指针类型不确定,所以在当malloc()函数返回指针时,必须强制进行转换位确定的指针类型。 与new区别:malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自原创 2012-02-16 10:12:48 · 1295 阅读 · 2 评论 -
C语言算法:栈
C语言算法:栈一、栈的定义(1)栈:限定只能在表的一端进行插入和删除的特殊的线性表(LIFO/FILO).(2)LIFO:last in first out,后进先出 FILO:first in last out,先进后出(3)栈有两端,分别是栈顶(top)和栈底(bottom). top:允许插入和删除的一端. bottom:不允许插入和删除的转载 2012-02-16 13:13:55 · 912 阅读 · 0 评论 -
((void *)-1)是把-1转换成指针0xFFFFFFFF
((void *)-1)是把-1转换成指针0xFFFFFFFF原创 2012-02-03 00:01:26 · 2669 阅读 · 0 评论 -
指向一维数组的指针变量和指向二维数组的指针变量---注意其指针表示
指向一维数组的指针变量和指向二维数组的指针变量以及指针数组的区别一、指向一维数组的指针变量 设一维数组为a[n]定义方法: *指针变量名 即 *P 这个p一般指向的一维数组的首地址,即p=a,或者p=&a[0];p,a,&a[0]均指向同一单元,它们是数组a的首地址,也是0 号元素a[0]的首地址。p+1,a+1,&a[1]均指向1号元素a[1]。类推可知a+原创 2012-02-03 00:10:37 · 11329 阅读 · 3 评论 -
函数指针与指针函数以及结构体调用函数的方法
以前忘记在哪见过见过C语言中:结构体通过指针的方式调用函数的方法,就一直找,找了半天,同时发现自己对函数指针和指针函数这两个概念没搞清楚。下面先说一下两者的区别。再者就是说一下结构体是如何通过函数指针的方式调用函数的。 1、指针函数 指针函数本质是一个函数,函数返回类型是某一类型的指针。 定义格式 :函数类型 * 函数名( 参数原创 2012-02-08 13:49:19 · 18916 阅读 · 4 评论 -
字符数组与字符指针的区别以及字符串常量的修改
字符数组 char string[20]=“hello zhao!” 字符指针 char *str="hello zhao!" (把字符串常量的首地址赋给了这个字符指针str) 区别 : 字符数组是在内存中开了一段空间用来存放 "hello zhao!”如下所示: hello zhao!\0原创 2012-02-14 16:44:40 · 2769 阅读 · 0 评论 -
【转载】C++new的用法
http://www.builder.com.cn/2008/0104/696370.shtml“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针转载 2012-02-03 00:07:59 · 952 阅读 · 0 评论 -
子类继承父类,那么子类实例化时对象调用的是父类还是子类的构造函数?
两个都调用,不过先调用父类构造函数,然后才调用子类构造函数。所以一般在子类的构造函数中第一条语句就是调用父类构造函数,不过如果你没有在第一条语句显示地调用父类构造函数,那会自动先调用父类的默认无参构造函数,当然这种情况下,你得保证父类必须有无参构造函数。 构造函数调用父类-》子类;析构函数调用子类-》父类转载 2012-03-02 15:04:53 · 1866 阅读 · 0 评论 -
vc6.0配置头文件和库文件的方法
转自:http://blog.csdn.net/zhizhichun/article/details/6758665三.附加头文件包含VC6.0中:VC6.0默认include包含路径:Tools>Options>Directories>Include files。对于特定项目的头文件包含,在“Project Setting>C/C++ (Category:Prepro转载 2012-03-06 22:13:55 · 4973 阅读 · 0 评论 -
VC自定义坐标系
文章来源:http://hi.baidu.com/hu_ba_lin/blog/item/e695d2583a2c2c84800a18d4.html在用VC绘图的时候,需要自定义坐标系,即改变坐标的映射模式,在网上查找了很多相关的知识,也还是很糊涂,天极网上有一篇文章(有位Hier也转载了这篇文章,或者也许他就是作者),图文并貌,稍微详细一些,但也只是侧重讲解了固定比例映射模式,而可变比例转载 2012-03-14 10:19:20 · 1868 阅读 · 2 评论 -
关于设备上下文DC和GDI的理解
一、设备环境(Device Context)(设备上下文) 设备上下文DC是一个Windows数据结构,它包含了某个设备的绘制属性。通常,绘制调用都是借助于上下文对象,而这些设备上下文对象封装了用于画线、形状、文本等的Windows API。设备上下文是设备无关的,所以它既可以用于绘制屏幕,也可以用于绘制打印机甚至元文件。设备上下文在内存中创建,而内存经常受到扰动,所以它的地址是不固定的原创 2012-03-14 10:12:05 · 5706 阅读 · 0 评论 -
Vc中关于DC(设备环境函数(Device Context))的理解
问:设备描述表DC是一个什么概念,谁通俗的说说,先谢了学习Vc,首先遇到的就是这个dc,即设置描述表,输出文字,绘图都要用这个,好象它太重要了。但是我就是不明白,这是什么东西。 一些教程看了,但还是不太了解,谁能通俗的说说,能快速理解它,谢谢。 答:1、作画之前需要准备好画布、画笔、调色板等。 当使用GDI函数如MoveToEx/LineTo转载 2012-03-14 08:32:02 · 1193 阅读 · 0 评论 -
VC6.0编辑框CEdit的文本操作
创建一个编辑框对象,例如myedit。常用函数:myedit.Getsel( A,B):是用来获取编辑框中当前选定文本的开始与结束的位置,必须是选定文本的开始与结束位置,并分别存在两个参数中。myedit.Setsel():是用来选取指定范围内的文本,或者定位插入符的。Setsel(0,-1)的作用是选中当前所有文本。而Setsel(int nStartChar, int nEnd原创 2012-03-12 10:11:34 · 4245 阅读 · 0 评论 -
CreateEvent用法
转自:http://blog.csdn.net/danhu/article/details/1779204CreateEvent用法HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SD BOOL bManualR转载 2012-03-07 11:40:56 · 854 阅读 · 0 评论 -
异步IO模型和Overlapped结构
转自:http://space.itpub.net/25897606/viewspace-705867OVERLAPPED结构主要用于异步I/O操作,其数据结构定义如下:typedef struct _OVERLAPPED { DWORD Internal; // 系统保留,存放系统设置的状态 DWORD InternalHigh; // 系统保留,存放被传转载 2012-03-07 11:34:53 · 1062 阅读 · 0 评论 -
边沿检测方法-FPGA入门教程
本节实验主要讲解FPGA开发中边沿检测方法,我们在设计中会经常用到。这个地方大家一定要理解。1.1.1.原理介绍学习HDL语言设计与其他语言不一样,HDL语言设计需要考虑更多的信号的电气特性,时序特性。我们先看一下边沿检测的基本原理。如上图,为我们待检测信号,可以看出边沿的特性:边沿两侧信号的电平发生了变化。红色为上升沿,绿色为下降沿。上升沿之前电平为低,上升沿之后电平为高。下降沿原创 2016-04-21 22:06:05 · 4084 阅读 · 0 评论