自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

转载 C++ inline函数简介

1.inline函数简介inline函数是由inline关键字来定义,引入inline函数的主要原因是用它替代C中复杂易错不易维护的宏函数。2.编译器对inline函数的处理办法编译器在编译阶段完成对inline函数的处理,即对inline函数的调用替换为函数的本体。但inline关键字对编译器只是一种建议,编译器可以这样去做,也可以不去做。从逻辑上来说,编译器对inline函数的处理步骤...

2019-03-30 13:37:36 270

转载 COM编程小结

From:COM编程小结COM编程小结 一、Com概念所谓COM(Componet Object Model,组件对象模型),是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一

2017-12-23 17:04:33 1023

转载 MFC对话框编程

摘自:https://www.cnblogs.com/lidabo/archive/2012/07/19/2598646.html一、创建对话框对象1.首先利用资源编辑器创建对话框资源,并针对该对话框资源定义一个对话框类:class   CTestDlg :  public CDialog2.创建话话框对象模态对话框的创建:    如: 

2017-12-12 16:00:32 1132

转载 GDI+学习及代码总结之------画线、区域填充、写字

转自:http://blog.csdn.net/harvic880925/article/details/9023329《精通GDI编程》里的代码,在学习过程中对它加以总结,以防以后用到,所有代码都是在MFC 单文档中实现的,写在View::OnDraw(CDC */*pDC*/)中画线/边框(Pen)1、画单线-------DrawLine

2017-12-11 17:59:54 965

转载 GDI+学习及代码总结之------区域

转自:http://blog.csdn.net/harvic880925/article/details/9115125在GDI+中,对于区域的部分基本上使用了GDI的区域构造函数与合并方法,所以我们先看看GDI中的区域是如何构造与操作的。GDI中区域构建与操作一、基本函数创建矩形区域:[cpp] view plain

2017-12-11 17:39:59 407

转载 GDI+学习及代码总结之------文本与字体

转自:http://blog.csdn.net/harvic880925/article/details/9097319字体、字体系列基本概念与构造字体系列GDI+中将具有相同字样、包括不同风格的字体称为字体系列。字体从其系列中获得名称、重量(如粗体、规则、加亮)以及风格。例如Arial字体系列包含了下列4种字体:Arial Regular(规则

2017-12-11 17:31:12 1663

转载 STM32 GPIO速度,模式等理解

一、 GPIO模式配置 1、输入/输出模式(参考stm32手册)2、GPIO输出模式下,几种速度的区别:(1). GPIO 引脚速度: GPIO_Speed_2MHz     (10MHz, 50MHz) ;    又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输

2016-11-24 10:33:43 1362

转载 CContextMenuManager上下文菜单管理器以及为菜单添加图标

转自:http://blog.csdn.net/akof1314/article/details/6075902在Visual Studio 2008SP1中,要弹出上下文关联菜单的话,只需要在应用程序初始化的时候调用CWinAppEx::InitContextMenuManager,然后使用CWinAppEx::GetContextMenuManager获得一个指向应用程序的

2016-11-20 22:34:27 918

转载 MFC注册表的使用

转自:http://blog.csdn.net/weiwenhp/article/details/9381717注册表简介有时程序中要存些设置信息,一个方法就是创建一些普通的txt或xml文件,然后保存进去就行了.另一办法就是保存到注册表里.注册表是由windows维护的一个小数据库.里面也会保存windows本身的很多配置信息.我们在命令行通过regedit可以手

2016-11-20 21:40:21 482

转载 STM32启动文件——startup_stm32f10x_hd.s

From:点击打开链接STM32启动文件——startup_stm32f10x_hd.s宗旨:技术的学习是有限的,分享的精神是无限的。 一、启动文件的作用 (关于启动代码的作用,前面已经提到过了,这里再啰嗦一下)(1)初始化堆栈指针 SP;(2)初始化程序计数器指针 PC;(3)设置堆、栈的大小;(

2016-11-08 15:25:27 834

转载 字节序&位序

From:字节序_位序字节序    字节序,又称端序、尾序,英文单词为Endian,该单词来源于于乔纳森·斯威夫特的小说《格列佛游记》,小说中的小人国因为吃鸡蛋的问题而内战,战争开始是由于以下的原因:我们大家都认为,吃鸡蛋前,原始的方法是打破鸡蛋较大的一端。可是当今皇帝的祖父小时候吃鸡蛋,一次按古法打鸡蛋时碰巧将一个手指弄破了,因此他的父亲,当时的皇帝,就下了一道敕令,

2016-11-08 12:17:30 920

转载 stm32 ADC相关

单次转换模式、连续转换模式 、 扫描转换模式举例如下:用ADC1 规则通道的顺序为CH0,CH1,CH2,CH3,不启动SCAN模式:  在单次转换模式下:    启动ADC1,则:      1.开始转换CH1(ADC_SQR的第一通道)      转换完成后停止,等待ADC的下一次启动,继续从第一步开始转换  在连续转换模式下

2016-08-11 16:18:09 563

转载 Stm32 外部中断EXTI使用说明

硬件情况:采用PA11管脚需要明确的是,PxN管脚共用外部中断线EXTIN和外部中断向量EXTIN_IRQn和中断服务程序入口EXTIN_IRQHandler,但是需要注意的是[9...5]共用EXTI9_5_IRQn和EXTI9_5_IRQHandler、[15...10]共用EXTI15_10_IRQn和EXTI15_10_IRQHandler基本过程:

2016-08-10 19:22:39 20893 5

转载 STM32的SYSTICK详解

什么是SysTick?这是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。SysTick作用在单任务引用程序中,因为其架构就决定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时,就会牵连到后续的任务,进而导致整个系

2016-08-10 18:05:00 18173 4

原创 STM32 中断相关

一、禁用、开启总中断 STM32在使用时有时需要禁用全局中断,比如MCU在升级过程中需禁用外部中断,防止升级过程中外部中断触发导致升级失败。ARM MDK中提供了如下两个接口来禁用和开启总中断:__disable_irq();   // 关闭总中断__enable_irq();    // 开启总中断       但测试发现这样一个问题,在关闭总中断后,如果有中断触发,虽然

2016-08-09 19:28:05 344

转载 STM32外设库文件分析(V3.5)

标准库文件3.5版本 1._htmresc 里面有两个logo,没用,删除。2.Release_Notes.html 发行版本,可以看到各个版本的发行时间,修改内容。3.Utilities 里面是一些测试C文件,评估使用。4.stm32f10x_stdperiph_lib_um.chm 帮助文件。5.Project 文件夹有个模版和一个例程。以工程模式提供。

2016-08-09 19:24:43 2594

转载 C运行时库(C Run-time Library)详解

From:C运行时库(C Run-time Library)详解一、什么是C运行时库1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发

2016-07-27 13:19:35 578

转载 c运行库、c标准库、windows API

From:c运行库、c标准库、windows API都是什么玩意C运行库和C标准库的关系C标准库,顾名思义既然是标准,就是由标准组织制定的。是由“美国国家标准协会(American National Standards Institute,ANSI)”为了规范C语言库而制定的标准。在最初,各个大学各个公司使用的C语言库都不尽相同,造成相互移植非常困难,在这个背景下,制定

2016-07-26 10:02:05 547

转载 VC++的Unicode编程(宏UNICODE与_UNICODE)

From:点击打开链接一、什么是Unicode  先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH)。其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符、数字、大小写字母和其它一些符号。而最高位为1的另128个字符(80H—F

2016-07-26 09:37:00 747

转载 ROM 、RAM和FLASH 的区别

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。一、RAM RAM 有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读

2016-06-23 19:37:05 247

转载 C++ 中extern"C"

比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。通常,在C 语言的头文件中经常可以看到类似下面这种形式的代码:#ifdef __cplusplus extern "C" { #endif /**** some declaration or s

2016-04-25 15:34:49 314

转载 C++ 类的前置声明

刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样://a.h #include "b.h" class A { .... private: B b; }; //b.h #include "a.h" class B {

2016-04-25 14:47:27 1327

转载 从内存资源中加载DLL:CMemLoadDll源码整理

头文件/*****MemLoadDll.h*****/#if !defined(Q_OS_LINUX)#pragma oncetypedef BOOL (__stdcall *ProcDllMain)(HINSTANCE, DWORD, LPVOID );class CMemLoadDll{public: CMemLoadDll(); ~CMemLoad

2016-04-22 18:00:39 4223

原创 QString用法总结

构造QString在 Qt 中如何构造一段格式化字符串?当然,C 中的方法都是可行的,比如 stdio.h 里面的 snprintf 什么的。在 Qt 中QString 提供了更好用的函数。arg这个函数的具体声明不写了,它有20个重载,典型的示例代码如下: 1: #include 2: #include

2016-04-20 09:59:18 2238

原创 VC中使用自定义资源

一、前言  在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义资源类型能做些什么呢?呵呵,用处多多。1.      默认的皮肤压缩包或语言包。一些支持换肤的软件特别是一些媒体播放器常常有自定义的皮肤文件(你可以尝试将Media Player或千千静听等软件的Skins目录下的文

2016-04-08 12:15:27 2038

原创 STM32启动后系统初始化SystemInit()

启动文件中复位异常相应函数如下:; Reset handlerReset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main IMPORT SystemInit LDR

2016-04-07 14:55:24 11160

转载 MDK __main()代码执行分析

__main()代码执行分析以keyled程序为例说明,keyled代码请参考我的博客网址:http://my.csdn.net/wfq0624/code/detail/7645 程序经过汇编启动代码,执行到__main()后,可以看出有两个大的函数:__scatterload():负责把RW/RO输出段从装载域地址复制到运行域地址,并完成了ZI运行域的初始化工作。

2016-04-07 11:37:11 7901 3

转载 ARM汇编伪指令介绍.

在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。          在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制

2016-04-07 11:17:07 647

原创 STM32启动过程详解

;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************;* File Name          : startup_stm32f10x_hd.s

2016-04-07 11:11:53 13142 1

转载 GdiplusStartup函数

GdiplusStartup function3 out of 4 rated this helpful Rate this topicApplies to: desktop apps onlyThe GdiplusStartup function initializes Windows GDI+. Call GdiplusStartup before maki

2016-04-06 19:02:40 512

转载 ARM的字对齐

一、啥是字对齐?为啥要字对齐?      现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问都可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就是对齐。字节对齐的原因大致是如下两条:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否

2016-03-24 11:24:46 510

原创 STM32---SPI 的CPOL、CPHA

设备与设备之间通过某种硬件接口通讯,目前存在很多种接口,SPI接口是其中的一种。SPI中分Master主设备和Slave从设备,数据发送都是由Master控制。一个master可以接一个或多个slave。常见用法是一个Master接一个slave.通信只需要4根线:SCLK, MISO, MOSI, SSSCLK:(Serial Clock)(串行)时钟

2016-03-24 11:14:57 6064 1

原创 编辑框CEdit

在VC 6中可以将一个编辑框的"Styles"中的"Multiline“和”Auto VScroll“勾上,然后编辑框里面的内容即可自动换行。  另外,CEdit 类的消息:  #include   // 头文件构造函数CEdit构造一个CEdit控件对象Create创建一个Windows编辑控件,并将其与CEdit对

2016-03-10 21:54:59 308

转载 STM32 ADC的规则通道和注入通道的区别

STM32的每个ADC模块通过内部的模拟多路开关,可以切换到不同的输入通道并进行转换。STM32特别地加入了多种成组转换的模式,可以由程序设置好之后,对多个模拟通道自动地进行逐个地采样转换。有2种划分转换组的方式:规则通道组和注入通道组。通常规则通道组中可以安排最多16个通道,而注入通道组可以安排最多4个通道。在执行规则通道组扫描转换时,如有例外处理则可启用注入通道组的转换

2016-03-10 14:09:11 1191

转载 STM32启动代码概述

一般嵌入式开发流程就是先建立一个工程,再编写源文件,然后进行编译,把所有的 *.s文件和 *.c文件编译成一个 *.o文件,再对目标文件进行链接和定位,编译成功后会生成一个 *.hex文件和调试文件,接下来要进行调试,如果成功的话,就可以将它固化到 flash 里面去。 启动代码是用来初始化电路以及用来为高级语言写的软件作好运行前准备的一小段汇编语言,是任何处理器上电复位时的程序运

2016-03-10 09:33:52 392

转载 STM32出现HardFault_Handler 原因及处理方法整理

STM32出现HardFault_Handler故障的原因主要有两个方面:1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。2、堆栈溢出。增加堆栈的大小。 出现问题时排查的方法:1、发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容。由于异常发生时,内

2016-03-10 09:26:18 16140

转载 CRC8校验分析

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。     CRC校验可以简单地描述为:例如我们要发送一些数据(信息字段),为了避免一些干扰以及在接收端的对读取的数据进行判断是否接受的是真实的数据,这时我们就要加上校验数据(即CRC校验码),来判断接收的数据是否正确。在发送端,根据

2016-02-05 14:38:35 2250

转载 Unicode字符集和多字节字符集关系

Unicode字符集和多字节字符集关系在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8

2016-02-02 19:54:10 1089

转载 VC++文件操作之最全篇

一、剖析VC中的文件操作      各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。  1.文件的查找  当对一个文件操作时,如果

2016-01-27 22:16:08 1712

转载 C++ 类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静

2016-01-27 21:50:43 193

空空如也

空空如也

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

TA关注的人

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