自定义博客皮肤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)
  • 收藏
  • 关注

原创 什么时候用增量式PID,什么时候用位置式PID

通过带有调节阀的管路向水箱注水,控制输出u为阀门开度,如果控制目标是注水速度(流量),则采用增量控制,达到目标流量后阀门会保持;如果控制目标是水位,则采用位置式,达到目标水位后阀门会基本处于零位,积分作用下会保持一定开度。可以看出,当控制输出u,和控制目标是一一对应关系(一定阀门开度对应一定流量)时,采用增量式;当控制输出u,影响的是控制目标的速度(水位变化的速度,即流量)时,采用位置控制。又比如,通过油门控制车速,也是增量控制,根据期望速度加减油门,速度到了保持住。

2023-08-31 16:52:55 1146

原创 XAPP585框架详解-LVDS时钟恢复逻辑

bt_val 为 17h。先取出 bt_val 的中间值,即17h 的中间值是 0Bh。把差分时钟n 的延迟时间设定为0Bh,把差分时钟p的初始延迟设定为17h,然后保持差分时钟n 的延迟时间不变,每次调节1个Tap,用于差分时钟p和差分时钟n的反向 进行相位对比,直到二者相位差为零。

2022-09-20 10:18:06 2921 1

原创 PLLE2_ADV、MMCME2_ADV源语详解

上图红色部分为PLLE2_ADV源语功能,其余部件为人为添加的电路,包括输入缓冲、输出缓冲、反馈方式。

2022-09-20 08:48:41 2672

转载 LVDS接收在高温(≥100°C)不稳定的问题,分析及解决

这是一个真实的Case。系统描述:使用FPGA普通IO做LVDS接收,一共四路,每一路有4路数据和一路时钟,数据速率约为700Mbps。LVDS接收部分的设计采用Xilinx XAPP585参考设计的源代码,基本没有做改动。所用器件:Kintex7,-3速度等级,商业档现象描述:在做高温测试时,在芯片结温超过100°C之后(芯片结温可以用JTAG实时监测),四路LVDS之一接收到的数据开始出现明显的误码,此时其它几路还能正常工作。从Xilinx器件本身来说,商业档的芯片,手册标称的温度范围是

2022-09-20 08:30:33 2125

原创 ERROR: [Synth 8-439] module ‘xxx‘ not found not found 错误解决办法

问题原因:Vivado 2021.2中关于HLS的操作都不兼容2022年份这个系统时间。解决办法:将window的系统时间给成2021年之前,复位工程reset_pro,再次编译就好了。

2022-07-20 17:01:40 4711 3

原创 Xilinx MIPI CSI-2 Receiver Subsystem IP详解

MIPI CSI-2 RX控制器由MIPI CSI-2 RX1.1规范中定义的多个层级组成,如通道管理层、LLP层、字节到像素转换层,说白了就是实现了MIPI的CSI-2协议。MIPI CSI-2 RX控制器核心通过PPI从MIPI D-PHY核心接收每个通道的8位数据,最多支持4个通道。如下图所示,PPI(Physical protocol interface)上接收的字节数据随后由低层协议模块处理,以提取真实图像信息。最终提取的图像使用AXI4流协议提供给用户/处理器界面。通道管理块始终在从PPI接

2022-07-20 15:29:05 7328 1

转载 基于FPGA的bayer转RGB算法

Raw RGB 每个像素只有一种颜色(R、G、B中的一种);RGB 每个像素都有三种颜色,每一个的值在0~255之间;在手机摄像头的测试过程中,由sensor输出的数据就是Raw data(Raw RGB),经过彩色插值就变成RGB。也不一定就是测试过程,想要获得真正的图像,都必须有的一个过程;sensor输出的数据格式,主要分两种:YUV(比较流行),RGB,这就是sonsor的数据输出;这其中的GRB就是Raw RGB,是sensor的bayer阵列获取的数据(每种传感器获得对应的颜色亮度);

2022-07-19 10:57:55 2785 1

原创 ZYNQ PL中断脉冲多久可以被CPU捕获到

来自不同模块的一组大约60个中断可以被路由到其中一个或两个CPU或PL。中断控制器为cpu管理这些中断的优先级和接收。除了IRQ#61到#68和#84到#91之外,所有的中断灵敏度类型都由请求源固定,不能更改。GIC必须被编程以适应这一点。引导ROM不对这些寄存器进行编程;因此,SDK设备驱动程序必须对GIC进行编程,以适应这些灵敏度类型。...

2022-07-14 18:58:35 544

转载 MIPI C-PHY科普

为了把你拍得更美,手机摄像头承受了莫大的压力,因为每一张图片都需要传给手机去处理去显示,像素越高,工作量越大。假如20W像素的图片是20kg的沙土,这时候你需要的只是一辆手推车;那么2400W像素就仿佛一趟沙土要增加到2.4吨,手推车已经满足不了你了,你需要一辆后八轮。于是,摄像头的图像传输,CPHY粉墨登场了,它就是那辆后八轮。说起CPHY之前,先聊聊它的前辈“DPHY”。DPHY就好比现在的80后,是目前摄像头图像传输的主力部队,CPHY则是00后,新生代充满了无限潜力,他们的作用都是把手机摄像

2022-07-13 10:56:07 2832

原创 MIPI CSI、DSI、UFS、C-PHY、D-PHY、M-PHY概念理解

从下图我们可以看到CSI、DSI、UFS为协议层,不同的应用使用不同的协议,比如摄像头使用CSI协议,显示器使用DSI协议,存储器使用UFS协议。3.C-PHY、D-PHY、M-PHYC-PHY、D-PHY、M-PHY属于物理接口层,同一协议可以使用不同的物理接口,比如CSI协议可以使用C-PHY、D-PHY、M-PHY输出,DSI协议可以使用C-PHY、D-PHY、M-PHY输出,UFS协议只能使用M-PHY输出。...............

2022-07-13 09:35:37 13944

原创 C语言位操作,清除和置位

#defineSetbit(x,y) x|=(1

2022-06-02 08:51:44 2937 1

原创 FPGA未使用IO大坑

当FPGA的IO未使用时,如果接了外部其他信号,信号可能被拉低,因为FPGA上电后未使用的IO可能被配置为下拉,导致外部信号源高电平信号被拉低,这个信号如果为1分2,则ARM检测的信号状态会是常低,显然是不正确的,这种状态下需要把FPGA未使用的IO设置为上拉。

2022-06-01 17:50:16 3962 3

原创 新能源汽车电池的发展及类型

目录1.铅酸电池(第一代)2.锂离子电池(第二代)3.飞轮电池,超级电容器(第三代)4.EV汽车锂动力电池性能及分类1.铅酸电池(第一代)优点 技术成熟、成本低 缺点 比能量(Wh/kg)和比功率(W/kg)低,不能满足EV续航里程和动力性能需求,之后进一步发展了阀控铅酸电池、铅布电池等,使得铅酸电池的比能量有所提高。 2.锂离子电池(第二代)优点 比能量和比功率都比铅酸电池高,大大提高了EV的动力性能和续航里程。 缺点 有些高能电池需要复

2022-05-22 10:07:54 1481

原创 传统汽车和新能源汽车结构和原理

目录1.传统汽车内部结构及原理​2.电动汽车内部结构及原理3.电动汽车控制系统1.传统汽车内部结构及原理2.电动汽车内部结构及原理3.电动汽车控制系统1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。2.未经原作者允许不得转载本文内容,否则将视为侵权;3.转载或者引用本文内容请注明来源及原作者;4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每

2022-05-22 09:25:02 1484

原创 补码的计算方式

很多人对补码计算很恼火,今天整理下补码的计算方式。举例说明:0 - 255<------>0x00 - 0xff <-----------> -128- + 127当最高位为 0 时,此时数值为正(0 - 127),当最高位为 1 时,此时数值为负(-128 --1)负数值 = 当前源码 - 256;举例如下:当前源码是0xFF,则负数值 = 255 - 256 = -1当前源码是0x80,则负数值 = 128 - 256 = -1281.本文部分素.

2022-05-17 21:40:59 8217

原创 ZYNQ下载程序出现错误Memory write error at 0x100000. APB

Error while launching program:Memory write error at 0x100000. APB Memory access port is disabled出现这个错误是因为DDR型号没有选择正确,核查下DDR型号即可。

2022-05-17 19:47:05 4758 4

转载 ZYNQ简介

1 ZYNQ简介(1)ZYNQ简介​ ZYNQ全称Zynq-7000 All Programmable SoC,是赛灵思公司(Xilinx)推出的新一代全可编程片上系统((APSoC)(全可编程指的是硬件和软件都可以编程),ZYNQ 的本质特征,是它组合了一个双核 ARM Cortex-A9 处理器和一个传统的现场可编程门阵列(FPGA)逻辑部件。它将处理器的软件可编程性与FPGA的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。​ ZYNQ旨在为视频监控、汽车驾驶员辅助以及工

2022-05-17 12:43:15 18561 1

原创 [Place 30-58] IO placement is infeasible. Number of unplaced terminals (1) is greate

Vivado 2019编译出现如下错误:解决方法:查找约束文件是否信号和顶层文件中的信号名字是否一致,或者其他约束文件错误,总之肯定是约束文件错误引起的。

2022-05-15 10:09:31 6430 1

原创 Vivado生成的.xsa文件过大问题

今天在生成.xsa文件的时候生成出来的文件大小上百兆,如下图:最后发现.xsa文件包含了sim.bin文件,但是搜索工程没有sim.bin文件,然后删除掉sim文件夹的文件后,发现.xsa文件变小。如下:...

2022-05-09 11:42:53 1385

原创 Vivado各个版本综合卡死、死机(PID Not Specified)解决方法

vivado在综合的时候出现卡死的现象,不管是关闭windows安全中心或者杀毒软件都不行,停止综合后会出现PID Not Specified,如下图所示:原因:在安装vivado的时侯,我们没有关闭杀毒软件导致vivado安装不完全,解决的方法是卸载掉vivado并且在杀毒软件关闭的前提下重新安装vivado软件即可。...

2022-05-08 23:52:39 5779

原创 Vitis 2021.1 和Vivado 2021.1 Zynq Flash固化Bug解决方法

2022-05-08 12:05:27 1480 1

原创 Xilinx集中DMA的用法

AXI-DMA:实现从PS内存到PL高速传输高速通道AXI-HP<---->AXI-Stream的转换AXI-FIFO-MM2S:实现从PS内存到PL通用传输通道AXI-HPM<----->AXI-Stream的转换AXI-Datamover:实现从PS内存到PL高速传输高速通道AXI-HP<---->AXI-Stream的转换,只不过这次是完全由PL控制的,PS是完全被动的。AXI-VDMA:实现从PS内存到PL高速传输高速通道AXI-HP<----&

2022-04-29 23:17:03 1455

原创 FPGA采集MIPI的几种方式

目录1.使用接口芯片2.使用Xilinx Artix-7系列FPGA3.使用Xilinx ZYNQ-7000系列FPGA4.使用电阻网络进行电平切换5.使用Xilinx ZYNQ-UltraScale+、FPGA-UltraScale+系列FPGA6.重要说明最近一直在研究MIPI接口,从一开始思路很模糊到现在基本了解其本质原理,今天来说说FPGA采集MIPI DPHY、CSI-2信号的几种主流的方式。1.使用接口芯片例如龙迅的LT9211芯片可以把MIPI信号直接转换成

2022-04-27 17:39:47 7271 2

原创 MIPI Data Type Classes-数据类型

目录1.Data Type Classes1.1.Synchronization Short Packet Data Types​1.2.Generic Short Packet Data Type Codes1.3.Generic 8-bit Long Packet Data Types1.4.YUV Image Data Types1.5.RGB Image Data Types1.6.RAW Image Data Types1.7.User Defined 8-bit

2022-04-27 11:49:42 3432 1

原创 LIN、K、CAN、CAN-FD、FlexRay、Ethernet 、MOST、VAN常见汽车总线简介

常见的汽车总线一般包括LIN、K、CAN、CAN-FD、FlexRay、Ethernet 、MOST、VAN等。传统分布式电子架构中以CAN网络为主,在EEA3.0等新一代电子电气架构中,车载以太网将成为未来发展趋势。LIN :10K-125Kbps,通常应用在车身域,包括车门、天窗、玻璃、灯等通信速度较低的应用场景;在满足通信速度需求,在无需CAN总线性能的同时可进一步降低网络成本。K:K线一般用于检测系统,属单线模式,与诊断仪器连接并相互传递数据,K线通讯速率较低,最大波特率仅为10400bps

2022-04-07 12:16:52 8059

转载 基于fpga的FlexRay总线设计

2022-04-07 09:47:53 729 1

转载 CAN-FD可变波特率配置避坑指南

CAN-FD配置需求NBT(tq) = CAN Clock(MHz) / BaudRate(MHz)TSEG1 = Prog Seg + Phase Seg1Phase Seg1在配置时,可以等于Phase Seg2TSEG2 = Phase Seg2SJW 大小不要高于Phase Seg1, Phase Seg2

2022-04-06 17:42:18 2760 1

原创 Notepad++和Vivado中文乱码问题

我们在Vivado打开Notepad++编辑的Verilog代码往往会出现中文字符乱码的问题。我们在使用Notepad++编写Verilog代码的时候,只需要保证文件在ANSI编码下正常即可,后期用Vivado打开或者编辑文件编码都不会出错的,如下所示。1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除;2.未经原作者允许不得转载本文内容,否则将视为侵权;3.转载或者引用本文内容请注明来源及原作者;4.对于不遵守此声明或者其他违法使用本文内容者..

2022-03-24 14:54:48 1521

原创 Notepad++ Verilog智能提示

1.新建verilog.xml文件,把下面的代码拷贝进去保存。<?xml version="1.0" encoding="Windows-1252" ?><NotepadPlus> <AutoComplete> <KeyWord name="always" /> <KeyWord name="and" /> <KeyWord name="assign" /> <KeyWord name="automati

2022-03-24 14:47:17 2518 1

原创 Notepad++编译Verilog代码(精简)

目录1.添加Vivado xvlog.bat 环境变量2.安装NppExec3.添加编译Verilog脚本4.编译1.添加Vivado xvlog.bat 环境变量2.安装NppExec3.添加编译Verilog脚本按键盘F6可以进行添加cmd /k cd "$(CURRENT_DIRECTORY)" &xvlog.bat "$(FULL_CURRENT_PATH)" &ECHO. &EXIT4.编译我们可以按键盘

2022-03-24 14:41:04 4587 5

转载 基于FPGA的LIN总线设计

基于FPGA的LIN总线设计_&点灯工程师的博客-CSDN博客

2022-03-22 11:53:21 757

原创 招聘FPGA和硬件设计工程师

招聘高级硬件工程师和高级FPGA工程师,工作地点西安,年薪30-50万,有意愿的朋友可以联系我。硬件设计:FPGA设计:

2022-03-16 15:19:52 1141

原创 CAN总线和CANOpen协议栈总结

内部含有CAN仲裁、CAN帧结构、CAN数据帧、远程帧、错误帧;CANOpen协议栈字典、通讯对象ID、SDO、PDO等概念,大家可以概览。

2022-03-15 15:51:28 1347

原创 异步FIFO进出规则

128入,32出,如下图.

2022-03-07 00:40:42 634

原创 Xilinx Clock Wizard注意事项

1个时钟,不能连接到2个Clock Wizard IP上,会报错,如下:54962 - Vivado Implementation - ERROR: [Place 30-120] Sub-optimal placement for a BUFG-BUFG cascade pair.

2022-03-03 14:50:34 1718

原创 Xilinx Clock使用出错

[DRC PDRC-43] PLL_adv_ClkFrequency_div_no_dclk: The computed value 798.214 MHz (CLKIN1_PERIOD, net clk_out2) for the VCO operating frequency of the PLLE2_ADV site PLLE2_ADV_X1Y5 (cell system_u0/mig_7series_0/u_design_pl_mig_7series_0_0_mig/u_ddr3_infrastru

2022-03-03 14:14:16 2510 2

转载 SENT协议

工作中用到了SENT协议的传感器,就专门研究的一下,以下内容主要来自于CANoe的帮助文档中的SENT协议的部分内容。概述SENT (Single Edge Nibble Transmission) 协议是汽车电子中常用于传感器信号的一种数字信号接口,其有特定的协议,是单向通信,是汽车电子中一种低成本通信的实现方式硬件SENT协议常用于传感器信号,其基本引脚连接如下:其高低信号的电平要求:0~0.5V为逻辑电平0,4.1~5V为逻辑电平1协议SENT协议的数据使用半个

2022-02-21 13:08:26 9709 3

转载 为什么伺服控制中CANopen通讯这么火?

1. CANopen的起源,CANopen从何而来?德国Bosch公司于1983年研发CAN协议,用于汽车传动系统的网络通讯。之后称为国际标准ISO11898,目前CANopen由非营利组织CiA(CAN in Automaion)进行标准的起草及审核工作,基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301. 中。针对个别设备的子协定以 CiA 301 为基础再进行扩充,如针对 I/O 模组的 CiA401 及针对运动控制

2022-02-19 13:21:43 3538

转载 MIPI CSI-2简介

1 概述如上图:CCI-2包括若干单向Data lane,用于传输图像数据 clock lane是必须的,data lane 1-4个 CCI,camera control interface,用于配置 物理层详见D-PHY,lane配置为:LP也需要,进出HS模式需要LP control mode若干操作The minimum D-PHY physical layer requirement for a CSI-2 transmitter is• Data Lane Modu.

2022-01-23 14:51:17 1582

原创 写给自己-第17天

人与人之间情断义绝,并不需要什么具体的理由。就算表面上有,也很可能只是心离开的结果,事后才编造出的借口而已。因为倘若心没有离开,当将会导致关系破裂的事态发生时,理应有人努力去挽救。如果没有,说明关系早已破裂。...

2022-01-22 00:40:47 518 1

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&reg; 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关注的人

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