自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

高原

嵌入式

  • 博客(29)
  • 收藏
  • 关注

转载 关于堆和栈

问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗?它们的作用范围是什么?它们的大小由什么决定?哪个更快?答案一

2016-10-30 16:44:13 266

转载 STM32时钟小结

众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认

2016-10-30 16:38:14 491

原创 C++中静态成员函数的作用

静态成员函数主要为了调用方便,不需要生成对象就能调用。比如class X{public: void MethodA(); static void MethodB();}此时MethodB可以直接调用,X::MethodB();MethodA必须先生成类对象才能调用,X x; x.MethodA();

2016-10-26 16:11:34 992

转载 QTL与STL对比

作者:诸葛不亮链接:https://www.zhihu.com/question/50156390/answer/119663575来源:知乎著作权归作者所有,转载请联系作者获得授权。Qt的容器类具体分析可见官方文档:http://doc.qt.io/qt-5.7/containers.html里面有关于时间复杂度、迭代器等各方面的概述和表格对比各个容器的具体实现,可以

2016-10-25 17:34:23 2727

转载 STM32 ADC 转换时间

本文转载自 http://www.cnblogs.com/LJWJL/p/4593246.htmlADC时钟:这个ADC时钟是从哪来的呢。我们看下面这个STM32的时钟结构图:  我们大多使用STM32的最快PCLK2系统时钟72MHz。ADCCLK的时钟由72MHz的6分频能瞒住14MHz以下的要求 为12MHz。RCC_ADCCLKConfig(RCC_PCLK

2016-10-25 11:04:56 4764

原创 STM32通过DMA方式采集多路AD

一个项目需求:使用STM32采集多路AD信号。一般采集多路信号需要使用DMA方式,步骤如下:1.使能相应ADC通道,这里使用ADC1的4个通道,分别是ADC123_IN0 ~ ADC123_IN3,注:ADC123_IN0 表示ADC1, 2, 3 都可以使用该通道。2.配置ADC,将ADC设为多通道循环扫描模式,设置各通道扫描顺序(人为设定)3.配置DMA通道关键

2016-10-25 10:46:43 14820 5

转载 继承 -----C++三大特性之一

本文转载自 http://blog.csdn.net/snow_5288/article/details/52910155?ref=myread一,为什么要引入继承?       继承是一个非常自然的概念,现实世界中的许多事物也都是具有继承性的。例如,爸爸继承爷爷的特性,儿子又继承爸爸的特性等都属于继承的范畴。下面是一个简单的汽车分类图:在这个分类图中建立了一种层次

2016-10-25 10:14:28 358

转载 STM32什么时候使用AFIO?

什么时候要开启AFIO呢?参考手册:说的很明白,操作AFIO的三类寄存器时需要开启:AFIO_EVCRAFIO_MAPRAFIO_EXTICRx这三类其实是AFIO的全部寄存器,AFIO_EVCR是事件相关的,AFIO_MAPR是与重映射相关的,AFIO_EXTICRx是与外部中断相关的。因此管脚重映射、外部中断、事件时开启AFIO。

2016-10-25 08:35:36 1284

转载 can总线

CAN基础can总线协议概述:  CAN是Controller Area Network的缩写,由德国博世公司开发;CAN通过ISO11891以及ISO11519进行了标准化;      CAN总线的特点:    1、多主控制      在总线空闲时,所有单元都可以开始发送消息(多主控制);      最先访问总线的单元获得发送权(辨别方式:“CSMA/

2016-10-25 00:05:07 1232

转载 ESP8266快速入门

教程开始1、准备工作      硬件部分:      USB转TTL板(ch340,PL2302皆可)   *1      ESP8266-01模块                                *1      杜邦线(母对母)                               *6软件部分:      装好TTL板驱动的电脑一台

2016-10-24 23:12:37 963

转载 Qt如何打包软件

2016-10-23 21:06:52 318

转载 C++中explicit的作用

explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项:    *      explicit 关键字只能用于类内部的构造函数声明上。    *      explicit 关键字作用于单个参数的构造函数。    * 在C++中,expli

2016-10-23 13:07:22 276

原创 1.求一个整数的二进制中1的个数 2.判断一个数是否是2的n次方

1.请说明下面函数实现的功能:答:func(x)的作用是计算 x 的二进制中1的个数,解析:每执行一次 x=x&(x-1),就会消去x最右边的一个1,直到x为0,于是就计算出了1的个数。2.如何判断一个数是否是2的n次方若x 为2的n次方,将其写成二进制形式后可以发现,二进制中只有一个1,后面跟了若干个0,若将x-1,则1变成了0,后面的0都变成了1,于

2016-10-21 15:10:45 644

转载 STM32的内部Flash

说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据。     自己收集了一些资料,现将这些资料总结了一下,不想看的可以直接调到后面看怎么操作就可以了。FLASH分类       根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。 主存

2016-10-21 12:39:09 940

原创 Qt中用QAxObject操作Excel

最近做一个项目需要用Qt写一个上位机,实现从串口读取数据并将数据保存到Excel表格中,需要用到QAxObject这个类,但是qApplication=new QAxObject() 会报错,于是在 .pro文件中加入CONFIG += qaxcontainer,于是错误消除。

2016-10-20 21:55:48 2320

转载 ARM内核结构

ARM内核有4个功能模块T、D、M、I,可供生产厂商根据不同用户的要求来配置生产ARM芯片。  其中:T功能模块表示16位Thumb,可以在兼顾性能的同时减少代码尺寸。M功能模块表示8位乘法器。D功能模块表示Debug,该内核中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使CPU进入调试模式,从而可方便地进行断点设置、单步调试。I功能模块表示EmbeddedICE Logic,

2016-10-17 13:48:22 5569

转载 ARM、DSP、AVR与C51的比较

ARM+DSP与AVR作为现代CPU设计范例,从现代眼光来看,都是非常先进的设计。最重要的是吸取了C51体系所显露出来的问题,在原有系列的基础上,拥有高性能、高速度,甚至是更低的功耗。本论文只针对ARM+DSP、AVR和C51单片机的特点,从不同的侧面进行了比较和阐述。  1 单片机的介绍  单片微型计算机(Single-Chip Micmprocessor)是微型计算机(Micr

2016-10-17 13:45:17 3576

转载 ARM嵌入式学习经典40问

电子发烧友网讯:在嵌入式学习过程中,基于ARM核的嵌入式芯片必不可少。那么,在学习ARM嵌入式知识或开发中,嵌入式工程师会遇到哪些不可预知的问题?哪些问题会在嵌入式的学习中成为您的拦路虎?为了尽量为电子发烧友网读者扫清这些令人困惑的障碍,故电子发烧友网整理推出《ARM嵌入式学习经典40问》,以飨读者。  第1问:  Q:请问在初始化CPU堆栈的时候一开始在执行mov r0, LR这

2016-10-17 13:43:38 376

转载 关于ARM的22个常用概念

文章具体介绍了关于ARM的22个常用概念。      1.ARM中一些常见英文缩写解释  MSB:最高有效位;  LSB:最低有效位;  AHB:先进的高性能总线;  VPB:连接片内外设功能的VLSI外设总线;  EMC:外部存储器控制器;  MAM:存储器加速模块;  VIC:向量中断控制器;  SPI:全双工串行接口;

2016-10-17 13:39:33 226

转载 ARM的发展史以及架构解析

本文从ARM的发展历史着手,以S3C2440为例与51单片机进行对比分析,详细解析了ARM架构。先来谈一下ARM的发展史:1978年12月5日,物理学家Hermann Hauser和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。

2016-10-17 13:36:03 9121

转载 stm32系列MCU芯片选型表

本文为stm32系列32位微控制器选型表,包括STM32F0系列、STM32L1系列、STM32F1系列、STM32F2系列、STM32F3系列、STM32F4系列选型,STM32系列36脚、48脚、64脚、100脚、144脚选型。TM32系列36脚、48脚、64脚、100脚、144脚选型:STM32系列按内核架构分类产品选型:STM32F0 系列STM32L1 系

2016-10-17 13:29:08 29848

转载 ARM架构的标准软硬件系统渐成形

谈到x86架构,最早其实来自4004晶片(4位元,也是世界上第一颗CPU),该晶片用于交通号志控制,严格而论是个微控制器(Micro Controller),不是电子资料处理的微处理器(Micro Processor),4004后有4040、8008(8位元)、8080、8085。谈到x86架构,最早其实来自4004晶片(4位元,也是世界上第一颗CPU),该晶片用于交通号志控制,严格而

2016-10-17 13:26:43 251

转载 从三个方面理解ARM嵌入式系统

从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。ARM嵌入式是大部分从事单片机嵌入式

2016-10-17 13:21:19 865

转载 ARM存储格式的“大小端”解析

ARM储存—大端格式和小端格式  所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放。  所谓的小端模式,是指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分

2016-10-17 10:12:51 15543

转载 STM32的存储器映射

存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOT,BLOCK等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义。        Cortex-M3支持4GB的存储空间,它的存储系统采用统一编址的方式;  程序存储器、数据存储器、寄存器被组织在4GB的线性地址空间内,以小端格式(lit

2016-10-16 21:45:26 565

原创 编译器中一些内置宏(方便调试)

ANSI C标准中几个标准预定义宏:__LINE__:在源代码中插入当前源代码行号;__FILE__:在源文件中插入当前源文件名;__DATE__:在源文件中插入当前的编译日期__TIME__:在源文件中插入当前编译时间;__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;__cplusplus:当编写C++程序时该标

2016-10-16 10:44:15 1042

原创 vim的一些常规配置

ubuntu系统默认安装的是vi,可以自行安装vim,在终端输入以下命令即可:sudo apt-get install vim在ubuntu中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc在终端 输入以下命令来编辑vimrc配置文件:sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc     此文件需要

2016-10-16 10:11:13 428

原创 关于字长的问题

评价下面的代码片断:unsigned int zero = 0;unsigned int compzero = 0xFFFF;评价:对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下:unsigned int compzero = ~0;解析:~是位运算符,是取反的意思,即二进制位0变1,1变0;unsigned

2016-10-16 09:12:59 614

原创 关于STM32的BOOT0和BOOT1

STM32一共有三种启动模式,在ST官网上下载的RM0008中,可找到启动相关的配置说明:翻译为中文:STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的Flash。2)SRAM = 芯片内置的RAM区,就是内存啦。3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Boo

2016-10-13 20:03:56 103620 7

空空如也

空空如也

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

TA关注的人

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