自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EEPROM和flash的区别

From:https://blog.csdn.net/yuanlulu/article/details/6163106EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。是相对于紫外擦除的rom来讲的。但是今天已经存在多种EEPROM的变种,变成了一类存储器的统称。flash属于广义的E...

2019-03-22 22:18:25 4507

转载 .hex文件和.bin文件区别

HEX文件和BIN文件是我们经常碰到的2种文件格式。因为自己也是新手,所以一直对这两个文件懵懵懂懂,不甚了解,最近在做STM32单片机的IAP更新,其中要考虑HEX文件和BIN文件,所以需要学习下这两种文件。下面是最近的我的了解,如有不对地方还请指正。1.HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身 在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文...

2019-03-22 21:54:54 1097

转载 #if 0 ... #endif的真实用途

在过去都没有去理会#if 的作用,今天突发奇想,开启编译器试一试。很多人都知道,#if0...#endfif的作用跟/*...*/的作用是一样的,就是注释,可是注释为什么不用注释符号/*就行了么?google了一下,大家都说是为了解决嵌套注释。如:/*---------------------------------------------------------------...

2019-03-22 21:43:34 790

转载 “#if 0/#if 1 ... #endif”的真实作用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/L_Andy/article/details/451003231、先说“#if 0/#if 1 ... #endif”的作用,楼上诸位或多或少都说到了一点,但都没有说到关键的地方。我们知道,C标准不提供C++里的“//”这样的单行风格注释而只提供“/* */”这样的块注释功能,我们通常使用它写...

2019-03-22 21:42:15 510

转载 有源蜂鸣器和无源蜂鸣器的差异

今天主要来分析一下关于有源蜂鸣器和无源蜂鸣器之间的区别。    首先大家要了解有源和无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。这就是通过驱动原理来分别的方法。    然后我们再来看看外观上区别吧(如下图...

2018-09-19 15:58:57 6062

转载 对嵌入式底层开发学习的一点看法

不知不觉中,学习嵌入式已经有差不多两年的时间了,从大二的时候开始学习 DSP ,现到开始接触 ARM9 ,有很大的感触,所以写出来,让大家进行指正,首先说明,这些只是个人学习中的看法,如果你,我亲爱的读者,我的看法与你的不同,那么请把你的看法分享出来。让本人也进行一下学习。      在老师的要求下。把 51 单片机着为入门嵌入式的接触 MCU ,现在想起来,老师做得很对,因为他当时要求我在两...

2018-09-01 10:11:36 2058

转载 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?

作者:知乎用户链接:https://www.zhihu.com/question/53880054/answer/164501004来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 谢邀。我在以前的答案回答过,嵌入式这个领域最大的坑就是定义不清或者定义太广泛。 基于STM32的开发属于微控制器开发领域,主要开发工具是keil或IAR,这种开发更准确...

2018-08-30 22:35:45 17350 5

转载 Linux 串口调试工具汇总

版权声明:技术需要共享,但同时需要尊重原创者的辛劳,转载引用请注明出处。 https://blog.csdn.net/JAZZSOLDIER/article/details/70183995在 linux 系统下进行串口调试或者开发时配合简单易用的串口调试工具那是必不可少。这篇博客对当前用的较多的,且我自己经常用的一些串口工具做一下汇总,大家可以参考一下。实验环境:OS: Ubuntu...

2018-08-30 22:11:28 4486

转载 Keil MDK 和 IAR 两款ARM开发工具区别比较

首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势。对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是赞美自己的选择。好了,下面开始讲Keil MDK-ARM和IAR的区别。 一、概述 Keil MDK-ARM(旧称RealView MDK)开发工具源自德国Keil公司,被全球上百...

2018-08-30 21:58:57 3662

转载 KEIL C51环境下,汇编与C语言交叉编译的问题

1. 关于如何在C语言中嵌入汇编命令:转载自:http://www.keil.com/support/docs/2308.htmC51: GETTING INLINE ASSEMBLY TO WORKInformation in this article applies to:C51 All VersionsQUESTIONHow do I implement inline ...

2018-08-30 21:57:22 1234

原创 嵌入式系统开发流程

一、嵌入式系统开发流程 1、系统需求分析:根据需求,确定设计任务和设计目标,指定设计说明书。 2、体系结构设计:描述系统如何实现所述的功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型。 3、硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件、软件进行详细设计。一般情况下嵌入式系统设计的工作大部分都集中在软件设计上,现代软件工程经常采用的方法是面向对象技术、软件组件...

2018-08-30 21:55:54 13801

原创 按位与、按位异或、按位取反 分析

& 按位与 | 按位或 ^ 按位异或 1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9...

2018-08-30 21:54:24 1983

原创 如何将.hex文件转化为.c文件

说明楼主太初级,迷恋于C。1、C与HEX并不是一一映射的,有可能N个人写的C,会出同一个HEX,你希望回成哪个人写的呢?或许你可能说:任意一个孝可以,只要能转C就行。同一个C程序,用不同的编译器去编译生成的HEX也不一定相同。2、将HEX转C是很困难的事,只有C的超级高手才有可能还原,也只是“可能”,他必须充分了解C的编译规律与特点,才能进行反编译。由于单片机是最底层的控制器,它与硬件是直...

2018-08-30 21:52:23 34308 2

转载 Linux:echo命令详解

https://www.cnblogs.com/Spiro-K/p/6360489.htmlecho命令用于字符串的输出 格式 echo string  使用echo实现更复杂的输出格式控制 1.显示普通字符串:echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo It is a test...

2018-08-29 10:54:18 387

转载 echo命令

echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。语法echo(选项)(参数)选项-e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则...

2018-08-29 10:46:36 277

原创 gcc编译问题:gcc后面既有-c又有-o是什么意思?比如gcc -c a.c -o a.o ,-o不是后面接生成的可执行文件名么

-c和-o都是gcc编译器的可选参数-c表示只编译(compile)源文件但不链接,会把.c或.cc的c源程序编译成目标文件,一般是.o文件。-o用于指定输出(out)文件名。不用-o的话,一般会在当前文件夹下生成默认的a.out文件作为可执行程序。例如gcc -c test.c将生成test.o的目标文件gcc -o app test.c将生成可执行程序appgcc -c a.c -...

2018-08-29 10:17:28 6371 1

原创 修改权限644是什么意思

644的意思是本用户有可读可写权限,群组有只读权限,其他用户为只读权限。解释:数字的三位分别代表:当前用户,群组用户,其他用户。然后权限可以分为:读r=4,写w=2,执行x=1所以:644为(4+2)(4)(4),即〔当前用户〕读,写权限,〔群组用户〕读权限,〔其它〕读权限。...

2018-08-22 23:41:07 16580

原创 用e返回指向T的最大元素的值

Status Max(Triplet,ElemType &e){e=(T[0]>=t[1])?((T[0]>=T[2])?T[0]:T[2]):((T[1]>=T[2])?T[1]:T[2]);return ok;}//Max

2018-08-20 15:01:55 464

原创 C语言程序中,exit(0)的作用

#include <stdlib.h>int main(){float a,b,c;char op;scanf("%f%c%f",&a,&op,&b);switch(op){case '+':c=a+b;break;case '-':c=a-b;break;case '*':c=a*b;break;case '/':c=a/b;break;...

2018-08-20 14:57:04 32549 1

转载 ENC28J60学习笔记*——第1部分

0.相关资料    相关资料中包括其他精彩博文和代码仓库    【嵌入式 TCP IP 资料汇总】       【ENC28J60学习笔记——索引】 【第1部分】【第2部分】【第3部分】【第4部分】    【STM32NET学习笔记——索引】    【uIP学习笔记】    【LwIP学习笔记——STM32 ENC28J60移植与入门】  1前言    嵌入...

2018-08-11 00:04:02 1479

原创 stm32时钟最大只能为72M么 还可不可以再倍频,怎么倍频?

1.一般你看到的STM32程序都是用HSE + PLL作为时钟的,因此在程序的一开始调用函数进行了设置,比如RCC_Dein();.... STM32默认就是用内部HSI作为时钟,所以,如果你上电,不对RCC进行任何设置,就是使用内部8M振... 2.可将外部8M的晶振换成12M的晶振,还是9倍频,但实际时钟可能达不到理论上的108M,我就是这样用的,如果对时序要求特别高的场合不建议这样使...

2018-07-30 23:12:57 7279

原创 ds18b20工作原理和测温原理介绍

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可...

2018-07-30 23:09:30 36934 2

原创 C++:cin、cin.getline()、getline()的用法

主要内容:1、cin用法2、cin.getline()用法3、getline()用法3、注意的问题 一、cin>>用法1:输入一个数字或字符#include <iostream>using namespace std;main (){int a,b;cin>>a>>b;cout<<a+b<...

2018-07-30 23:08:01 168

原创 基于ds18b20的程序dat详解

dat=(j<<7)|(dat>>1)详解://读一位数据(读位程序)1unsigned char tmpreadbit(void)       //read a bit2{3   unsigned char dat; 4   DS_OUT();      //端口设置为输出5   DS_L();        //DS=06   //Delayn(1); ...

2018-07-30 23:03:43 1317

原创 关于c++中getline(cin,str)在cin之后使用

int main(){    string str;    int a;    cin>>a;    getline(cin,str);    cout<<endl;    return 0;}getline(cin,str)的读取原理是将以‘/n’为结束符做为一完整读取的一行,'/n'会读。所以当之前用cin读取一个字符的时候,你会输入一个字符然后点...

2018-07-30 22:43:28 3080 1

原创 C语言面试题大汇总jie

 static有什么用途?(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7. 引用与指针有什么区别?1) 引用必须被初始化,指针不必。2) 引用初始化以后不能被改变,指针可以改变所指的对象。2) 不存在指向空值的引用,但是存在指向空值的指针。8. 描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性9. 全局变量和局部变量在内存中是否有区别?如果有,是什么...

2018-07-26 15:25:30 287

原创 C++——左值引用和右值引用

这篇blog主要介绍一下左值和右值的概念及应用陷阱1、左值和右值的概念         左值是可以放在赋值号左边可以被赋值的值;左值必须要在内存中有实体;         右值当在赋值号右边取出值赋给其他变量的值;右值可以在内存也可以在CPU寄存器。         一个对象被用作右值时,使用的是它的内容(值),被当作左值时,使用的是它的地址。2、引用        引用是C+...

2018-07-19 16:19:48 113

原创 是否能在keil中混合编译c和c++程序

keil中支持混合编译C和C++程序, 因为其本质最终都是编译成汇编,所以是可以同时操作的。 在混合编译时,需要注意以下几点:1、C文件扩展名必须为.C, C++文件扩展名必须为.CPP, 头文件扩展名必须为.CPP。 如果源文件的扩展名使用错误,会导致编译出错。2、C语言的头文件,需要加上如下条件编译及限制代码:#ifdef  __cplusplus    extern "C"...

2018-07-19 10:27:23 5507 3

原创 Keil uVision编译支持C++

关联版本:MDK-ARM V5.14 or higher ARMCC C/C++ Compiler V5.05 or higher问题:在Keil uVision里使用MDK-ARM编译器,是否支持C++11 (学名是C++0x) 版本程序呢?答案:支持。MDK-ARM已经支持ARM编译器版本5.05, 并且支持C++11版本特性,如果要编译支持C++扩展功能,只需要在Keil...

2018-07-19 10:26:07 9017

原创 C++中各种输出格式 如fixed、precision()、showpoint

out<<fixed  //用一般的方式输出浮点型,例如C++程序在控制台显示大一点的数,显示的时候使用了科学计数法,使用该命令即可像一般的方式显示cout.precision(2) //设置精确度为2,并返回上一次的设置。cout.setf(iOS_base::showpoint)  //显示浮点数小数点后面的零。 更多格式说明  用来格式控制的。s...

2018-07-19 09:49:55 1856

原创 C++中inline函数简介

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

2018-07-16 11:44:00 250

原创 PID算法的理解及实现

关于理解PID控制算法最典型的一个例子就是一个漏水的水缸的问题。网上有很多讲解PID的帖子会讲到这个例子。这里我也把我自己对于PID的理解用这个例子阐述一遍。        有个漏水的水缸,而且漏水的速度还不是恒定的。然后我们还有个水桶,我们可以控制往水缸里面加水或者从水缸里面舀水出来。另外我们可以检测水平面。现在我们的目的就是要控制水平面稳定在我们想要的任何一个平面上。        注意我们使...

2018-04-20 20:54:21 3149

原创 阻抗匹配

如果把电压比作速度、把电流比作力量:比如两个人,一个干瘦,力量不大但跑路速度快,另一个是胖子,虽然动作较慢,但有力量。如果你让瘦子跑腿去送信、让胖子搬运货物,这活就安排对了,这叫阻抗匹配;如果你让胖子跑腿去送信、让瘦子干体力活,虽然也能做,但谁都干不好,这叫不匹配。瘦子速度快力量小,相当于电压高电流小,适合高阻抗的工作;胖子速度慢力量大,相当于电压低电流大,适合低阻抗的工作。虽然他们的工钱(功率)...

2018-04-08 21:59:11 912

转载 ch340是什么芯片

CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。     在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线。有关USB 转打印口的说明请参考手册(二)CH340DS2。     在红外方式下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外...

2018-03-29 21:01:24 98581 3

原创 JTAG的SWD接线方式

JTAG引脚示意图: 一、SWD 和传统的调试方式区别1. SWD 模式比 JTAG 在高速模式下面更加可靠2. GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚3. 在板子的体积有限的时候推荐使用 SWD 模式二、仿真器对 SWD 模式支持情况1. 市面上的常用仿真器对 SWD 模式支持情况JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10MULIN...

2018-03-29 20:53:51 26925

转载 Keil(MDK-ARM)使用教程——在线调试

Keil(MDK-ARM)使用教程(三)_在线调试由于我是直接使用(打开现有的软件工程),如果跟着需要下载上面演示参考的软件工程才行。工程默认是使用硬件在线调试,接下来按照每一点来讲述。 1.编译+调试打开软件工程 -> 编译 -> 调试这里的编译建议使用Build Target(第2个按钮)编译工程(如下图动画),也就是使用快捷键F7。Translate(第1个按钮)是编译当前活动文...

2018-03-29 20:50:33 34258 7

原创 static 和 extern水火不容。

用static声明局部变量,使其变为静态存储方式,作用域不变;用static声明外部变量,其本身就是静态变量,这只会改变其连接方式,使其只在本文件内部有效,而其他文件不可连接或引用该变量。    static作用于函数:e.g.: static void func(void);  使用static用于函数定义时,对函数的连接方式产生影响,使得函数只在本文件内部有效,对其他文件是不可见的。这样的函数...

2018-03-28 16:57:13 469

原创 STM32F103ZET6和STM32F103C8T6芯片的区别

是这样的,一个具体的STM32F103系列芯片的内存有多大,你看一下芯片上的型号就行了。STM32F103XY 注意,XY是个代号,X是表示封装有多少个引脚,比如,如果X = Z,即STM32F103ZY,则表示这个芯片有144个引脚,如果 X = V,即STM32F103VY,系列有100。ST代表意法半导体,其中ARM有三个系列,分别是A、R、M,所以M表示的是这款芯片是M系列的,F是芯片的子...

2018-03-28 16:55:25 42119 1

原创 STM32F103ZET6和STM32F103C8T6编程不一样吗?

我把C/C++选项卡中 STM32F10X_HD,USE_STDPERIPH_DRIVER 修改为 STM32F10X_MD,USE_STDPERIPH_DRIVER, 编译成功.谢谢O(∩_∩)O初始化的时候要调用SystemInit();就正常了。正解。选择了startup_stm32f10x_md.s的启动文件,并将C/C++中也修改为了STM32F10X_MD,USE_STDPERIPH_...

2018-03-28 16:41:31 28866 9

原创 STM32 BOOT0 BOOT1 配置

如图所示,一般情况下如果我们想用用串口下载代码,则必须配置BOOT0为 1, BOOT1为 0,而如果想让 STM32 一按复位键就开始跑代码,则需要配置 BOOT0 为 0,BOOT1 随便设请参考正点原子的一键下载电路,这个电路比较好,不用繁琐的切换boot电平...

2018-03-28 16:31:47 672

空空如也

空空如也

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

TA关注的人

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