自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个早起的程序员

coding the future!

  • 博客(410)
  • 资源 (39)
  • 问答 (1)
  • 收藏
  • 关注

原创 写给自己-第16天

你跑的快,耳边才全是风声;你跑的慢,耳边自然都是闲人碎语。过好自己的生活,不要在意那些没用的东西。

2022-01-20 21:53:24 488

转载 美信GMSL技术让汽车数据传输更为高效

目前,大部分车企都在其旗舰车型上配备了达到Level 2水平的自动驾驶技术,也就是高级自动驾驶辅助 ADAS系统。ADAS系统硬件主要由以下几部分组成,包括传感器、串行器、解串器、ADAS处理器等。除了ADAS系统,包括传感器融合、音视频影音娱乐、以太网控制、车身控制等都变得更为复杂,数据量的大幅增加就需要更高的带宽。据Strategy Analytics预测,从2017年到2020年,带宽需求预计提高大约25倍。更高的帧率和分辨率只会给汽车带宽带来更大的压力。然而,这是支持迅速扩张在线数据容量必不可少

2022-01-20 10:47:21 5280 2

原创 写给自己-第15天

人生不能靠心情活着,而要靠心态去生活。很多事,你越是想去弄个明白,反而越是困惑,心中一旦有了执念。就像线团,只会越扯越乱。子欲避之,反促遇之。凡事顺其自然就好。既来之,则安之,这才是生存之道。...

2022-01-19 23:28:51 451

原创 44.XDMA逻辑实战1-创建XDMA工程并在线测试

1.上期回顾前面讲解了XDMA的功能、原理及所有寄存器,我们现在开始创建 XDMA IP并生成工程,本篇也会对我们生成的工程进行下载测试,验证PCIe设备是否正常运行。2.XDMA例子功能(1)1个H2C通道和1个C2H通道;(2)使用MSI中断,并开始4个中断向量(2个DMA通道中断、2个用户逻辑中断);(3)开启用户逻辑寄存器空间。3.创建工程下面我会带着大家一步一步创建XDMA IP,文章最下面也会附带本节源代码。我们打开Vivado,点击创建工程下一步

2022-01-19 17:15:41 2576 20

原创 写给自己-第14天

如果你越来越冷漠,你以为你成长了,但其实没有。长大应该是变温柔,对全世界都温柔。成熟,是对很多事物都能放下,都能慈悲,愿以善眼望世。

2022-01-18 23:33:23 326 2

原创 43.XDMA寄存器详解7-MSI-X Vector Table and PBA寄存器组剖析及MSI-X中断详解

目录1.上节回顾2.MSI-X Table and PBA由来3.XDMA MSI-X Table and PBA寄存器4.MSI和MSI-X中断机制5.MSI和MSI-X对比6.MSI/MSI-X Capability结构6.1 MSI Capability结构6.2 MSI消息格式及发送方式6.3 MSI-X Capability结构6.4 MSI-X table查找过程​7.下节内容1.上节回顾上节我们讲述了SGDMA Common寄存器组,我们这节

2022-01-18 23:29:12 2486

原创 42.XDMA寄存器详解6-SGDMA Common寄存器组剖析

1.上节回顾上节我们讲述了H2C SGDMA/C2H SGDMA寄存器组,我们今天来看SGDMA Common寄存器组,如下。2.SGDMA Common寄存器组2.1 SGDMA标识寄存器2.2 SGDMA描述符控制寄存器2.3 SGDMA描述符信用使能寄存器3.下节内容下节我们对MSI-X Vector Table and PBA相关寄存器组(最后一组)进行详解,大家继续努力。1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与

2022-01-18 22:18:54 1318

原创 41.XDMA寄存器详解5-H2C SGDMA/C2H SGDMA寄存器组剖析

目录1.上节回顾2.H2C SGDMA寄存器组2.1H2C SGDMA标识寄存器2.2H2C SGDMA描述符基地址寄存器2.3H2C SGDMA邻接描述符数量寄存器2.4H2C SGDMA描述符信用寄存器3.C2H SGDMA寄存器组4.下节内容1.上节回顾上节我们讲述了Config Block寄存器组,我们今天来看H2C SGDMA/C2H SGDMA寄存器组,如下。H2C SGDMA/C2H SGDMA寄存器组主要是用来描述每个通道DMA描述符相关的一些

2022-01-18 21:42:29 1999 2

原创 写给自己-第13天

这世界上有很多东西,细小而琐碎,却在你不经意的地方,支撑你度过很多道坎。

2022-01-18 00:12:19 134

原创 40.XDMA寄存器详解4-Config Block寄存器组剖析

目录1.上节回顾2. Config Block寄存器剖析2.1 Config标识寄存器(0x00 只读)2.2 Config设备总线ID寄存器(0x04 只读)2.3 Config最大写请求TLP有效负载寄存器(0x08 只读)​2.4 Config最大读请求TLP有效负载寄存器(0x0C 只读)2.5 Config DMA 子系统ID寄存器(0x10 只读)2.6 Config MSI使能寄存器(0x14 只读)2.7 Config PCIE数据位宽寄存器(0x18 .

2022-01-18 00:07:07 1109

原创 39.XDMA寄存器详解3-IRQ Block寄存器组剖析

目录1.上节回顾​2. IRQ Block寄存器剖析2.1 IRQ标识寄存器(0x00 只读)​2.2 IRQ用户中断使能掩码寄存器(0x04)2.3 IRQ DMA引擎中断使能掩码寄存器(0x10)2.4 IRQ用户中断请求寄存器(0x40 只读)2.5 IRQ DMA引擎中断请求寄存器(0x44只读)2.6 IRQ用户中断挂起寄存器(0x48 只读)2.7 IRQ DMA引擎中断挂起寄存器(0x4C 只读)2.8 IRQ 用户中断向量设置寄存器(0x80-0x8C

2022-01-17 21:42:09 1303

原创 写给自己-第12天

你今天的努力,是幸运的伏笔,当下的付出,是明日的花开。让我们怀揣希望去努力,静待美好的出现。

2022-01-16 23:51:43 138

原创 PCIe中MSI和MSI-X中断机制详解

目录1.MSI和MSI-X中断机制2.MSI和MSI-X对比3.MSI/MSI-X Capability结构3.1 MSI Capability结构3.2 MSI消息格式及发送方式3.3 MSI-X Capability结构3.4 MSI-X tavle查找过程1.MSI和MSI-X中断机制在PCI总线中,所有需要提交中断请求的设备,必须能够通过INTx引脚提交中断请求,而MSI机制是一个可选机制。而在PCIe总线中,PCIe设备必须支持MSI或者MSI-X中断请求机制,

2022-01-16 22:29:41 10823

原创 PCIe 6.0概述

目录1.PCIe 6.0新特性2.通道和PAM-43.FLIT4.新的低功耗状态5.在64GT/s下保持性能6.PHY和控制器集成7.测试和调试注意事项8.总结1.PCIe 6.0新特性PCI Express(PCIe)6.0技术即将推出,对于高性能计算、AI和存储SoC开发者来说,理解并考虑如何最好地应对即将面对的关键变化,以及由此带来的设计挑战变得至关重要。这些变化包括从非归零(NRZ)转换到脉冲幅度调制4(PAM-4)信号导致对噪声的敏感性增加,转向FLow控制

2022-01-16 19:55:26 5916

原创 38.XDMA寄存器详解2-H2C、C2H通道寄存器组剖析

目录1.上节回顾2. H2C寄存器剖析2.1 H2C通道标识寄存器(0x00)2.2 H2C通道控制寄存器(0x04)2.3 H2C通道状态寄存器(0x40)2.4 H2C通道完成描述符数量寄存器(0x48)2.5 H2C通道对齐寄存器(0x4C)2.6 H2C通道查询模式回写地址寄存器(0x88、0x8C)2.7 H2C通道中断掩码寄存器(0x90)​2.8 H2C通道性能监视控制寄存器(0xC0)2.9 H2C通道周期计数性能寄存器(0xC4、0xC8)2

2022-01-16 14:54:48 3226 3

原创 写给自己-第11天

很多关系,不是老的好,也不是新的好,而是一起经历了一些事之后,你还真切的觉得对方挺好,这才是值得你去认真对待和掏心窝子的关系。

2022-01-15 23:57:06 163 1

原创 37.XDMA寄存器详解1-内部寄存器概览

目录1.XDMA寄存器Bar空间映射规则2.XDMA寄存器概览​2.1H2C通道寄存器组​2.2C2H通道寄存器组2.3IRQ Block寄存器组2.4Config寄存器组2.5H2C SGDMA寄存器组2.6C2H SGDMA寄存器组2.7SGDMA Common寄存器组2.8MSI-X寄存器组​3.XDMA寄存器Bar地址空间访问规则4.下节内容1.XDMA寄存器Bar空间映射规则IP核默认只支持DMA(支持DMA Stream和...

2022-01-15 23:29:10 2586

原创 写给自己-第10天

收获不是一朝一夕的事,需要的是一如既往的坚持。用饱满的热情做好每一件事,不管脚步有多慢都不重要,只要你在走,总会有进步!

2022-01-14 22:32:29 283 1

原创 36.XDMA原理详解2-DMA描述符、描述符FIFO、描述符旁路详解

目录1.上节回顾2.描述符详解2.1描述符数据结构2.2描述符各个字段详解3.XDMA描述符FIFO4.XDMA描述符旁路5.下节内容1.上节回顾上节我们讲解了描述符的概念及XDMA数据传输架构,描述符其实是用来描述将要执行的内存块传输,包含DMA传输源地址、目的地址、传输长度等各种核心信息。我们这节详细讲解描述符的数据结构及含义。2.描述符详解2.1描述符数据结构一个描述符由32字节组成,数据结构如下所示。 Offset(偏移)

2022-01-14 22:14:42 3158

原创 写给自己-第9天

人生苦短,不必计较过多,与其在纷扰中度日如年,不如在洒脱中快乐生活。

2022-01-13 23:15:44 223 1

原创 PCIe链式DMA传输原理详解

目录1.为什么需要链式DMA2.链式DMA传输原理详解1.为什么需要链式DMAXAPP1052我们学过每一次DMA请求开始后,只能传输PC 1个连续的物理内存块,如果要传输下一个内存块,则必须重新初始化内存并配置好DMA寄存器,再次启动DMA才可以完成。我们知道驱动申请一块连续的物理内存是否成功取决于系统内存大小,应用进程的多少等等因素,所以XAPP1052一次DMA的传输的最大值是不确定的。我在测试时,主机为2GB内存、开的应用也不多的情况下申请连续的4MB内存会时常失败。我们假设我们

2022-01-13 22:58:05 5600 5

原创 35.XDMA原理详解1-DMA描述符概述及DMA数据传输架构

1.DMA Operations(DMA操作)PCIe DMA引擎通常在PC内存和FPGA内存之间移动数据,FPGA通常是外接卡。当数据从主机存储器到FPGA存储器,称为主机到卡(H2C)的传输或系统到卡(S2C)的传输。相反,当数据从fpga存储器移动到主机存储器时,它被称为卡到主机(C2H)或卡到系统(C2S)传输。C2H、H2C这些术语有助于描述数据的流动方式(而不是使用读和写,后者很快就会引起混淆)。PCIe DMA引擎只是简单地将数据移动到PCIe地址空间,或者从PCIe地址空间获取数据.

2022-01-13 22:50:30 4755 3

原创 写给自己-第8天

每个人都是独立的个体,都有属于自己的生活方式。你不可能成为别人,别人也不可能成为你。你的生活别人不能复制,别人的生活也不可能适合你。在自己的日子中发现意义、创造价值,就是最美好的事。...

2022-01-12 22:57:03 176

原创 34.XDMA功能详解3-核的功能配置及中断原理

目录1.核的功能配置2.IRQ Module中断原理2.1传统中断2.2 MSI和MSI-X中断3.下节内容1.核的功能配置IP核默认只支持DMA(支持DMA Stream和DMA MM),DMA也是必须要开启的,也就是4通达H2C/4通道/C2H,此时DMA控制和配置寄存器存在于Bar0地址空间。如果使能PCIe to AXI Lite Master,则IP核会多出一个AXI Lite Master,此接口用于访问用户逻辑寄存器,这些寄存器存在于Bar0地址空间,而DMA控制和

2022-01-12 22:29:59 3849 6

原创 PCI总线地址空间与PC地址空间的映射关系及数据传输原理

目录1.地址映射原理2. PC和PCI设备数据传输原理2.1 PC作为主机2.2 FPGA设备作为主机3.核心总结1.地址映射原理其实很多复杂的外设和简单的外设原理都很像,PCIe设备其实就是主机的一个外设,就像STM32的UART一样,STM32 DMA可以从ram把数据给UART外设,DMA也可以把数据从UART外设搬运到ram,STM32 CPU也主动可以读写UART外设寄存器到自己的ram,这里UART外设和ram具有不同的地址。对于PCIe系统来说其实类似,FPGA.

2022-01-12 10:55:20 4850

原创 写给自己-第7天

在一切变好之前,我们总要经历一些不开心的日子,这段日子也许很长,也许只是一觉醒来,所以耐心点,给好运一点时间。

2022-01-11 22:54:04 153

原创 33.XDMA功能详解2-XDMA概述、功能框图、应用场景

目录1.XDMA概述2.XDMA功能框图3.支持的事务4.XDMA应用场景5.下节内容以下是对pg195-pcie-dma文档的翻译。每个我都会做对应的红色字体解释。1.XDMA概述DMA/Bridge Subsustem for PCI Express IP核可以被配置为高性能直接内存访问(DMA)搬运器或者被配置为一个桥(PCIe和具有AXI接口的内存空间)。(1)DMA数据搬运器:当作为DMA时,这个IP核可以被配置为AIX4(AXI4 Memory Mapped)

2022-01-11 22:37:23 4024 1

原创 写给自己-第6天

坚持与放弃的一念之差,会导向全然不同的未来。而未来的你,也一定会深深感谢现在这个拼命努力着的你。

2022-01-10 22:09:33 217

原创 32.XDMA功能详解1-初识XDMA

1.前期回顾前期我们讲解了PIO和XAPP1052的原理及代码剖析,本期我们开始讲解XDMA的相关知识及应用。2.什么是XDMAXDMA其实是Xilinx提供给我们的一个IP核,全程为DMA/Bridge Subsustem for PCI Express IP core,与前面讲解的XAPP1052功能类似,该IP核可以实现通过PCIe链路与PC进行DMA大数据传输,与XAPP1052不同的是该IP核不提供内部实现代码,我们只能去应用它。3.为什么要学习XDMA相比于XAPP1052,

2022-01-10 22:02:23 5815

原创 写给自己-第5天

人一挪动就有了活得更好的可能,树一挪动就有死掉的危险。

2022-01-09 17:30:31 296

原创 31.XAPP1052乱序分析及处理

目录1.XAPP1052乱序分析2.XAPP1052乱序处理2.1乱序处理方法选择2.2 XAPP1052乱序处理代码详解3.XAPP1052乱序处理后的波形分析3.1发送引擎3.2接收引擎4.XAPP1052乱序处理后的带宽测试5.下期内容1.XAPP1052乱序分析首先先给大家讲解下什么是PCIe的乱序。在PCIe系统中,乱序就是主机发送的TLP序列ID为1、2、3、4到从机,从机接收到的可能不是1、2、3、4。主机和从机如果都不解决乱序的问题,就会导致从机接

2022-01-09 12:43:27 1138 1

原创 写给自己-第4天

放下你的浮躁,放下你的懒惰,放下你的三分钟热度,放空你禁不住诱惑的大脑,放开你容易被任何事物吸引的眼睛,放淡你什么都想聊两句八卦的嘴巴,静下心来做你该做的事就好。

2022-01-08 23:13:57 313

原创 30.XAPP1052驱动实战2-DLL动态链接库应用

目录1.上节回顾2.创建MFC应用程序3.拷贝库文件到工程目录4.添加库文件到工程5.测试界面及代码设计6.源代码下载7.下节内容1.上节回顾上节课我们利用Windriver现有的函数封装了自己的PCIe DLL。本节我们要开发一个MFC应用程序,通过调用我们自己封装的DLL实现对DMA读写速度测试,界面如下图所示。2.创建MFC应用程序(1)打开VS2010,点击新建,我们创建MFC应用程序,如下图。(2)点击确定后会跳出以下界面,我们按照下面的

2022-01-08 22:52:53 379

原创 写给自己-第3天

没有一份工作是不辛苦的,也没有一个年纪是不应该努力的。人生就是取舍,懂得舍得才能成大事。

2022-01-08 01:10:49 287

原创 29.XAPP1052驱动实战1-DLL动态链接库封装

1.上节回顾上节课我们学习了virtex5_diag.exe应用程序完成DMA读写并实现中断响应的详细流程及源代码,这节我们利用Windriver现有的函数开始封装我们自己的PCIe DLL。2.安装VS2010我们这里使用的VS2010编译器,大家安装即可。3.封装DLL动态链接库代码我已经提前写好了,前面大家有了一定的基础肯定都可以看懂,这里只讲述整个封装DLL的流程及MFC使用方法。大家跟着我一步一步走即可。(1)创建以下文件夹用来存放我们的dll工程,课程中前缀aec代表a_

2022-01-08 01:03:44 426

原创 VS2010出现Warning C4996解决方法

1.项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加_CRT_SECURE_NO_DEPRECATE。2.将原来的旧函数替换成新的Security CRT functions。sscanf---> sscanf_s

2022-01-07 22:35:25 587

原创 写给自己-第2天

努力和上进,不是为了做给别人看,是为了不辜负自己,不辜负此生。

2022-01-06 17:10:47 300

原创 28.XAPP1052驱动详解-WinDriver DMA读写流程

目录1.上节回顾2.PC DMA读写流程图3.PC DMA读写源代码详解3.1 VIRTEX5_DMAGetMaxPacketSize详解3.2 VIRTEX5_DMAOpen详解3.3 VIRTEX5_DMADevicePrepare详解(核心)3.4 VIRTEX5_DmaIntEnable详解3.5 VIRTEX5_IntEnable详解3.6 DMA缓冲区初始化3.7 VIRTEX5_DMAStart详解4.下节内容1.上节回顾上节课我们给XAPP

2022-01-06 14:49:14 1242 4

原创 写给自己-第1天

每个人的心里,都藏着一个了不起的自己,只要你不颓废,不消极,一直悄悄酝酿着乐观,培养着豁达,坚持着善良,只要在路上,就没有到达不了的远方!

2022-01-05 20:15:53 237

原创 27.XAPP1052源码实战2-DMA读写在线波形分析

1.上节回顾上节课我们对XAPP1052源代码寄存器读写、DMA读写进行测试,本节课给加硬件逻辑分析仪,在线查看寄存器读写、DMA读写的波形。2.添加硬件逻辑分析仪ila2.1生成IP核如下操作添加IP。2.2接收引擎添加信号我们在接收引擎代码的最下面添加要观察的信号,注释非常清晰,这里不多说了,上节我给大家的代码也都已经添加好了。2.3发送引擎添加信号我们在发送引擎代码的最下面添加要观察的信号。添加完成后,点击生成bit流、烧写、重启电脑。3..

2022-01-05 15:30:08 2724

VC++透明按钮 VC++绘图 MFC透明按钮

VC++透明按钮 VC++绘图 MFC透明按钮

2016-09-25

STM32 ST-LINK Utility3.9

STM32 ST-LINK Utility3.9 ST-link utility for STM32 flash operation.

2016-09-23

MFC VC++属性页和属性表源码

MFC VC++属性页和属性表源码

2016-09-23

MFC VC++6.0 可编辑的ListCtrl.zip

MFC VC++6.0 可编辑的ListCtrl.zip

2016-09-19

STM32/STM8 STLink驱动

STM32/STM8 STLink驱动

2016-09-19

CPPTooltip VC++源代码及库文件

详细说明:强大的vc++提示类,功能非常的强大,美观,在我的多个项目中都有使用。-Vc++ tooltips powerful, functionality is very powerful, beautiful, I have used a number of projects. 文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉): cpptooltip_demo.zip cpptooltip_src.zip Introduction.doc

2016-09-11

具有921600波特率的串口调试助手

具有921600波特率的串口调试助手

2016-09-03

MCUISP STM32串口下载工具

MCUISP是一款针对st公司的stm32f系列单片机和NXP的LPC2xxx系列的isp程序。该ISP下载器具有一系列优点,可与eaglecom串口调试软件配套,进行isp盲调。

2016-09-03

STM32 F4 开发板 官方例程(经典)

ST(意法半导体)推出了以基于ARM® Cortex™-M4为内核的STM32F4系列高性能微控制器,其采用了90 纳米的NVM 工艺和ART(自适应实时存储器加速器,Adaptive Real-Time MemoryAccelerator™)。 ART技术使得程序零等待执行,提升了程序执行的效率,将Cortext-M4的性能发挥到了极致, 使得STM32 F4系列可达到210DMIPS@168MHz。 自适应实时加速器能够完全释放Cortex-M4 内核的性能;当CPU 工作于所有允许的频率(≤168MHz)时,在闪存中运行的程序,可以达到相当于零等待周期的性能。 STM32F4系列微控制器集成了单周期DSP指令和FPU(floating point unit,浮点单元),提升 了计算能力,可以进行一些复杂的计算和控制。 STM32 F4系列引脚和软件兼容于当前的STM32 F2系列产品。

2016-09-02

多进程编程实现浏览器 MuiltiProcess

Windows 应用程序中消息有两种送出途径;直接和排队。Windows或某些运行的应用程序可直接发布消息给窗口过程,或者,消息可送到消息列象连续不断轮询消息队列的OS中当前执行的每个进程都 事件驱动程序不是由事件的顺序来控制,而是由事件的发生来控,而事件的发生是随机的、不确定的,这就允许程序的用户用各种合理的顺序来安排程序的流程。

2016-09-01

学习OpenCV(中文版).pdf

《学习OpenCV》是2009年清华大学出版社出版的图书,作者是(美国)布拉德斯基。 该书由OpenCV发起人所写,站在一线开发人员的角度用通俗易懂的语言解释了OpenCV的缘起和计算机视觉基础结构,演示了如何用OpenCV和现有的自由代码为各种各样的机器进行编程,这些都有助于读者迅速入门并渐入佳境,兴趣盎然地深入探索计算机视觉领域。 计算机视觉是在图像处理的基础上发展起来的新兴学科。OpenCV是一个开源的计算机视觉库,是英特尔公司资助的两大图像处理利器之一。它为图像处理、模式识别、三维重建、物体跟踪、机器学习和线性代数提供了各种各样的算法。 透过本书,您将置身于迅速发展的计算机视觉领域。本书由自由开源OpenCV的发起人所著,介绍了计算机视觉,并通过实例演示了如何快速生成这样的应用——能使计算机“看到”并根据由此获取的数据做出决策。 计算机视觉无处不在,安全系统、制造检验系统、医学图像分析、无人机等都可以见到它的踪影。它与Google Map和Google Earth紧密结合,它检查LCD屏幕上的像素,它确保衬衫上的每个针脚都能完全缝合。OpenCV提供了一个简易好用的计算机视觉框架和一个丰富的库,后者包含500多个可实时运行视觉代码的函数。 透过各章提供的练习,任何一个开发人员或爱好者都可以迅速掌握如何使用这个框架。本书特色主题如下: 透彻介绍OpenCV 从摄像机获取输入 图像的变换 图像的分割和形状的匹配 模式识别,包括人脸检测 二维和三维场景中的跟踪监测 根据立体视觉进行三维重构 机器学习算法 “让机器来看”是一个富有挑战但也很有意思的目标。不管是想构建简单的视觉应用,还是复杂的视觉应用,都离不开这本入门必备参考,拿起它,开始愉快的学习之旅吧! 本书可作为信息处理、计算机、机器人、人工智能、遥感图像处理、认知神经科学等有关专业的高年级学生或研究生的教学用书,也可供相关领域的研究工作者参考。

2016-08-29

VC6.0显示PNG图片

Visual C++6.0使用GDI+的一般方法 1. 载解压GDI+开发包; 2. 正确设置include & lib 目录; 3. stdafx.h 添加: #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include 4. 程序中添加GDI+的包含文件gdiplus.h以及附加的类库gdiplus.lib。 通常gdiplus.h包含文件添加在应用程序的stdafx.h文件中,而gdiplus.lib可用两种进行添加: 第一种是直接在stdafx.h文件中添加下列语句: #pragma comment( lib, "gdiplus.lib" ) 另一种方法是: 在VC.net中添加库文件在:项目菜单->属性->链接器->输入 举个例子: (1)在应用程序项目的应用类中,添加一个成员变量,如下列代码: ULONG_PTR m_gdiplusToken; 其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。 (2)在应用类中添加ExitInstance的重载,并添加下列代码用来关闭GDI+: int CGDITestApp::ExitInstance() { Gdiplus::GdiplusShutdown(m_gdiplusToken); return CWinApp::ExitInstance(); } (3)在应用类的InitInstance函数中添加GDI+的初始化代码: 注意:下面这些GDI+的初始化代码必须放在m_pMainWnd->UpdateWindow();之前。 CWinApp::InitInstance(); Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); (4)在需要绘图的窗口或视图类中添加GDI+的绘制代码。 下面分别就单文档和基于对话框应用程序为例,说明使用GDI+的一般过程和方法。 1. 在单文档应用程序中使用GDI+ 在上面的过程中,我们就是以一个单文档应用程序Ex_GDIPlus作为示例的。下面列出第4步所涉及的代码: void CGDITestView::OnDraw(CDC* pDC) { CGDITestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here usingnamespace Gdiplus; Graphics graphics(pDC->m_hDC); Pen newPen(Color(255,0,0),3); HatchBrush newBrush(HatchStyleCross,Color(255,0,255,0),Color(255,0,0,255));//创建一个填充画刷,前景色为绿色,背景色为蓝色 graphics.DrawRectangle(&newPen,50,50,100,60);// 在(50,50)处绘制一个长为100,高为60的矩形 graphics.FillRectangle(&newBrush,50,50,100,60); // 在(50,50)处填充一个长为100,高为60的矩形区域 } 编译并运行,结果如图:

2016-08-29

GDI+库以及使用方法

Visual C++6.0使用GDI+的一般方法 1. 载解压GDI+开发包; 2. 正确设置include & lib 目录; 3. stdafx.h 添加: #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include 4. 程序中添加GDI+的包含文件gdiplus.h以及附加的类库gdiplus.lib。 通常gdiplus.h包含文件添加在应用程序的stdafx.h文件中,而gdiplus.lib可用两种进行添加: 第一种是直接在stdafx.h文件中添加下列语句: #pragma comment( lib, "gdiplus.lib" ) 另一种方法是: 在VC.net中添加库文件在:项目菜单->属性->链接器->输入 举个例子: (1)在应用程序项目的应用类中,添加一个成员变量,如下列代码: ULONG_PTR m_gdiplusToken; 其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。 (2)在应用类中添加ExitInstance的重载,并添加下列代码用来关闭GDI+: int CGDITestApp::ExitInstance() { Gdiplus::GdiplusShutdown(m_gdiplusToken); return CWinApp::ExitInstance(); } (3)在应用类的InitInstance函数中添加GDI+的初始化代码: 注意:下面这些GDI+的初始化代码必须放在m_pMainWnd->UpdateWindow();之前。 CWinApp::InitInstance(); Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); (4)在需要绘图的窗口或视图类中添加GDI+的绘制代码。 下面分别就单文档和基于对话框应用程序为例,说明使用GDI+的一般过程和方法。 1. 在单文档应用程序中使用GDI+ 在上面的过程中,我们就是以一个单文档应用程序Ex_GDIPlus作为示例的。下面列出第4步所涉及的代码: void CGDITestView::OnDraw(CDC* pDC) { CGDITestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here usingnamespace Gdiplus; Graphics graphics(pDC->m_hDC); Pen newPen(Color(255,0,0),3); HatchBrush newBrush(HatchStyleCross,Color(255,0,255,0),Color(255,0,0,255));//创建一个填充画刷,前景色为绿色,背景色为蓝色 graphics.DrawRectangle(&newPen,50,50,100,60);// 在(50,50)处绘制一个长为100,高为60的矩形 graphics.FillRectangle(&newBrush,50,50,100,60); // 在(50,50)处填充一个长为100,高为60的矩形区域 } 编译并运行,结果如图:

2016-08-29

《数学之美》

《数学之美》是人民邮电出版社于2012年5月出版的图书,作者吴军,2014年再版。书中将高深的数学原理讲得更加通俗易懂,让非专业读者也能领略数学的魅力。通过具体实例教会读者在解决问题时如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新等。 几年前,“数学之美”系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价。读者说,读了“数学之美”,才发现大学时学的数学知识,比如马尔可夫链、矩阵计算,甚至余弦函数原来都如此亲切,并且栩栩如生,才发现自然语言和信息处理这么有趣。 今年,作者吴军博士几乎把所有文章都重写了一遍,为的是把高深的数学原理讲得更加通俗易懂,让非专业读者也能领略数学的魅力。读者通过具体的例子学到的是思考问题的方式 —— 如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新。

2016-08-19

基于MFC的ActiveX控件开发(VC2005).pdf

基于MFC的ActiveX控件开发: 在VC 下ActiveX 控件的开发可以分为三种,一种是直接用COM 的API 来开发, 这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的;一种是基于传统 的MFC,采用面向对象的方式将COM 的基本功能封装在若干MFC 的C++类中,开发者通 过继承这些类得到COM 支持功能。MFC 为广大VC 程序员所熟悉,易于上手学习,但缺点 是MFC 封装的东西比较多,因此用MFC 开发出来的控件相对会比较大,因此比较适于开 发桌面ActivexX 控件,尤其是有GUI 界面的控件。第三种就是基于ATL 的,ATL 可以说 是专门面向COM 开发的一套框架,使用了C++的模板技术,在运行时不需要依赖于类似 MFC 程序所需要的庞大的代码模块,更适合于Web 应用开发。 本文介绍的是采用第二种方式,即应用MFC 进行桌面可视控件开发的方法步骤,开发

2016-08-19

USB识别 HID识别 MFC代码

USB识别 HID识别 MFC代码

2016-08-12

opencv参考手册 opencv帮助文档集

opencv参考手册 opencv帮助文档集 OpenCV入门教程 OpenCV官方文档

2016-06-03

在指定位置画可拉伸的图片(用CMemDC封装).

本资源实现了在一个对话框指定区域画图,图片可根据指定区域的大小拉伸自身的大小。并且实现了在对话框指定的订房画各种彩色的形状。例如圆、正方形等等。

2016-05-31

MFC制作闪烁灯、绘制彩色文字源代码

此代码可以实现在VC界面上绘制一个彩色的灯,当时也可以绘制多个,可以使用按键来控制闪烁。并且实现了在界面上绘制彩色文字的功能。程序运行环境是VS2010,但是如果稍加移植,在各个编译环境下都可以运行。

2016-05-30

YUV422转RGB888 FPGA Verilog纯逻辑代码

YUV422转RGB888 FPGA Verilog纯逻辑代码 支持1920x1080

2022-03-03

xapp1052.pdf

xapp1052.pdf

2021-12-30

PCIe实战课件18讲.rar

PCIe实战课件18讲.rar

2021-12-27

C8051F仿真器软件源代码_可二次开发.rar

C8051F仿真器软件源代码

2021-12-27

cameralink_code.rar

fpga实现对cameralink视频采集,方案及实现

2021-12-27

FPGA_PAL_OUT.rar

Xilinx FPGA输出PAL视频,可以直接下载使用(ADV7393芯片)

2021-12-27

xilinx DDS博客源代码

DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器本文主要介绍如何调用Xilinx的DDS IP核生成某一频率的Sin和Cos信号。

2020-12-02

qtcreatorcdbext.rar

the selected debugger may be inappropriate for the inferior的解决方案

2020-04-16

vcvarsqueryregistry.bat

本文章向大家介绍Qt Creator无法打开包括文件: “corecrt.h”: No such file or directory”,主要包括Qt Creator无法打开包括文件: “corecrt.h”: No such file or directory”使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

2020-04-10

VGA时序标准.zip

本文件包含了所有的VGA标准, 640x350、640x400、720x400、640x480、800x600、848x480、1024x768、1152x864、1280x720、1280x768、 1366x768、1400x1050、1600x1200、1680x1050以及网上分辨的标准,并且不同帧的标准都有,如果找不到你想要的,你杀了我。

2020-02-18

qwt已编译,亲测,包括例子和库文件

官网下载的QWT6.1.2(最新版本),已经编译!包括examples

2018-08-23

老罗Android开发视频教程(第一季全部)

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。[1] 2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

2017-11-13

水晶按钮制作软件

水晶按钮制作软件 按钮图标制作神器 可以制作工程的各种各样的按钮图标软件

2017-11-11

opencv1.0 avi播放视频插件

opencv1.0 avi播放视频插件,OpenCV1.0需要此插件才可以在windows上运行,拿到文件直接点击安装即可。

2017-10-20

利用WinDriver实现链式DMA

利用WinDriver实现链式DMA,里面还有对描述符表的详细讲解

2017-08-18

IRPTRACE(软件+注册机)

IRPTrace是驱动开发是必须的调试工具之一。可监控发往Windows的I/O请求包。里面包含软件和注册机,希望大家喜欢。

2017-07-26

C8051F全系列代码例程

目前C8051F系列单片机最全最完整的程序例程,包含了各个型号单片机的驱动程序,代码稍加修改就可以使用,是参考学习的好东东

2016-10-17

VC++ MFC 串口通信20个经典源码合集

VC++ MFC 串口通信20个经典源码合集 串口通信 MFC VC++ COM ATL

2016-09-25

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

TA关注的人

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