![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
文章平均质量分 81
吾息
这个作者很懒,什么都没留下…
展开
-
SPI通信基础
SPI协议是由摩托罗拉公司提出的通讯协议,中文名即为串行外设接口。这是一种全双工的高速通讯总线,可支持同时输入输出。 通讯引脚 SPI使用3条通讯总线和1条片选线。 MOSI:Master Output Slave Input,顾名思义,即主设备输出/从设备输入。数据从主机输出到从机,主机发送数据。 MISO:Master Iutput Slave Onput,主设备输入/从设备输出,数据由从机输出到主机,主机接收数据。 SCK:即时钟信号线,用于通讯同步。该信号由主机产生,其转载 2021-05-21 13:54:00 · 782 阅读 · 0 评论 -
IIC介绍(一)之物理层介绍
IIC的引脚少,硬件实现简单,可扩展性强,不需要UART、CAN等通讯协议的外部收发设备,而被广泛地应用于系统内多个集成电路间的通讯。IIC的常见连接方式如下图所示:由上图可知,IIC的物理特性很简单:(1)两根线:SCL为时钟线,接2~15V的电压以及一个上拉电阻;SDA为数据线,接2~15V的电压以及一个上拉电阻;...转载 2019-11-24 21:12:03 · 728 阅读 · 0 评论 -
IIC协议解释
IIC协议解释(1)概述I2C(Inter-Integrated CircuitBUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。经常IIC和SPI接口被认为指定是一种硬件设备,但其实这样的说法是不尽准确的,严格的说他们都是人们所定义的软硬结合体,分为物理层(四线结构)...转载 2019-11-24 20:58:30 · 223 阅读 · 0 评论 -
再探索IIC应答信号和非应答信号
转自:https://blog.csdn.net/sinat_31499981/article/details/782156621,SCL一直由Master控制,SDA依照数据传送的方向,读数据时由Slave控制SDA,写数据时由Master控制SDA。当8位数据传送完毕之后,应答位或者否应答位的SDA控制权与数据位传送时相反。2,开始位“Start”和停止位“Stop”,只能由Maste...转载 2019-11-24 20:25:17 · 2166 阅读 · 0 评论 -
关于浮点运算和定点运算
转自:https://blog.csdn.net/allen_sdz/article/details/86172432什么是定点数?https://baike.baidu.com/item/定点数/11030127什么是定点运算?https://baike.baidu.com/item/定点运算/1861887?fr=aladdin什么是浮点数?https://baike.baidu...转载 2019-11-09 21:45:27 · 893 阅读 · 0 评论 -
串口,UART,TTL,RS232,RS422,RS485详解
---------------------作者:Bertfans来源:CSDN原文:https://blog.csdn.net/Bertfans/article/details/80027151版权声明:本文为博主原创文章,转载请附上博文链接!串口通信(Serial Communication), 是电子工程师面对的最基本的一个通讯方式,它是指外设和计算机间,通过数据信号线 ...转载 2019-04-23 09:54:57 · 4063 阅读 · 0 评论 -
CPU的平均指令周期 怎么算,如何计算处理器的机器周期
转自:http://blog.sina.com.cn/s/blog_a2e4b72c010139mj.html请高手讲解一下,何为处理器的时钟频率, 何为时钟周期,何为机器周期...如何计算机器周期?example :若处理器的时钟频率为500MHz ,每4个时钟周期组成一个计算机周期,执行一条指令平均需要三个机器周期, 则该处理器的一个机器周期为_____...转载 2019-05-13 16:34:42 · 21891 阅读 · 2 评论 -
过采样技术原理介绍
来自:http://bbs.21ic.com/icview-2402956-1-9.html?_dsign=f0df6baa过采样技术原理介绍假定环境条件: 10位ADC最小分辨电压1LSB 为 1mv假定没有噪声引入的时候, ADC采样上的电压真实反映输入的电压, 那么小于1mv的话,如ADC在0.5mv是数据输出为0我们现在用4倍过采样来, 提高1位的分辨率,当我们引入较大幅值的白噪...转载 2019-07-30 15:00:52 · 809 阅读 · 0 评论 -
关于MAP文件的一点认识 - DSP数字信号处理
来自:http://www.360doc.com/content/09/0407/15/799_3050704.shtml本文来自于HELLODSP交流网 作者:huttu近来有很多朋友问及MAP文件,下面我就对MAP文件的一点理解和大家分享。MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。一、生成方法 MAP文件主要有两种生成方法,一种是...转载 2019-08-03 17:15:43 · 2730 阅读 · 0 评论 -
原码, 反码, 补码 详解
来自:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助!一....转载 2019-03-27 22:00:22 · 190 阅读 · 0 评论 -
C语言宏定义和宏定义函数
转自:http://blog.sina.com.cn/s/blog_861912cd0100tc94.html要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 ...转载 2018-12-04 08:39:48 · 17737 阅读 · 0 评论 -
C语言带参数宏定义
转自:http://c.biancheng.net/cpp/html/66.htmlC语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数,这点和函数有些类似。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。带参宏定义的一般形式为:#define 宏名(形参列表) 字符串在字符串中含有各个形参。带参宏调用的一般形式为:宏名(实参列表);...转载 2018-12-04 08:38:08 · 447 阅读 · 0 评论 -
STM32F103的11个定时器详解
http://www.51hei.com/bbs/dpj-40311-1.htmlSTM32F103系列的单片机一共有11个定时器,其中:2个高级定时器4个普通定时器2个基本定时器2个看门狗定时器1个系统嘀嗒定时器出去看门狗定时器和系统滴答定时器的八个定时器列表;8个定时器分成3个组;TIM1和TIM8是高级定时器TIM2-TIM5是通用定时器T转载 2017-01-05 19:33:16 · 9151 阅读 · 0 评论 -
Stm32产生两路相位差为180度的pwm
http://www.eemaker.com/stm32-180dupwm.htmlStm32产生两路相位差为180度的pwmBy derrick wang 由于上次用高级定时器产生的两路互补带死区的pwm信号不能满足应用需求。如标题所示需要的是两路相位差为180度的pwm信号,占空比和频率都是相同的,只是相位不同。仔细重读高级定时器的数据手册,发现产生的转载 2017-01-05 19:01:39 · 12113 阅读 · 4 评论 -
扇区 物理块 逻辑块 flash 基础概念【网络收集】
sector:硬件(磁盘)上的最小的操作单位,是操作系统和块设备(硬件、磁盘)之间传送数据的单位block由一个或多个sector组成,是软件(OS、文件系统)中最小的操作单位;操作系统的虚拟文件系统从硬件设备上读取一个block,实际为从硬件设备读取一个或多个sector.对于文件管理来说,每个文件对应的多个block可能是不连续的;block最终要映射到sector上,所以block的转载 2016-01-24 13:55:34 · 2745 阅读 · 0 评论 -
将DSP的flash里面的函数转移到ram中的步骤
对于独立的嵌入式系统,需要把程序存入non-volitale存储单元中,常用的也就是flash。但是程序在flash中运行相对在ram中行,速度会变慢很多,具体有多慢,拿28335来说吧,假设系统时钟为150MHz,在ram中运行时频率还是150Mhz,而放在flash中,频率会降到90-95Mhz,参照Ti手册SPRA958L,这对于有些对实时性要求较高的函数功能,是不可接受的。所以在系统上电时...转载 2019-08-04 09:09:57 · 758 阅读 · 0 评论 -
STM32中的程序在RAM还是FLASH里运行?
转载 2019-08-04 09:51:04 · 668 阅读 · 0 评论 -
cpu运行时程序是在flash中还是在RAM呢?
转自:http://blog.csdn.net/denghuanhuandeng/article/details/6904728对于x86的pc机和单片机等嵌入式开发系统程序的存储是截然相反的,即:x86的pc机cpu在运行的时候程序是存储在RAM中的,而单片机等嵌入式系统则是存于flash中x86cpu和单片机读取程序的具体途径pc机在运行程序的时候将程序从外存(硬...转载 2019-08-04 09:47:04 · 664 阅读 · 0 评论 -
在ARM Linux下使用GPIO模拟SPI时序详解
Author:杨正Data:2016.1.1 Mail:yz2012ww@gmail.com一、概述SPI是英文SerialPeripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI是一种高速、全双工、同步通信总线,标准的SPI有4个引脚,常用于单片机和EEPROM、FLASH、实时时钟、数字信号处理等器件的通信。SPI通信原理要比I2C简单,...转载 2019-10-07 17:34:59 · 1564 阅读 · 0 评论 -
深入谈谈整型、浮点型在内存中的存储方式
一、正整型正整型,没什么好说的,就是补码存储方式,正数的补码和原码相同,即先转换为二进制,然后高位扩展0,一直填充至32位……比如:5这个数的存储方式如下先转换为二进制:101因为只有3位,所以前面填充29个0,即 00000000 00000000 00000000 00000101二、负整型负整型,跟正整型一样,也是补码存储方式,不过负数的补码计算方式是取绝对值的二进制,按...转载 2019-08-11 14:21:28 · 167 阅读 · 0 评论 -
I2C(smbus、pmbus)和SPI协议分析
I2C和SPI作为两种非常常用的低速外部总线,已经不是什么新新技术了。有些知识点,明白了,一段时间不用了,又忘记了。所以决定乘最近正好碰过这两个东西,还是写下来以备后患。I2CI2C是以前的飞利浦半导体制定的标准,也就是如今的NXP。I2C总线由一条数据线(SDA)和一条时钟线(SCL)组成。设备分主从,主设备提供时钟,并发起操作。看一下这张I2C协议必须和可选的功能表。最简...转载 2019-08-07 17:38:54 · 8559 阅读 · 1 评论 -
大端小端与数字的二进制存储
部分1:大端小端概念摘自:https://jocent.me/2017/07/25/big-little-endian.html计算机系统中内存是以字节为单位进行编址的,每个地址单元都唯一的对应着1个字节(8 bit)。这可以应对char类型数据的存储要求,因为char类型长度刚好是1个字节,但是有些类型的长度是超过1个字节的(字符串虽然是多字节的,但它本质是由一个个char类型组成的类似...转载 2019-08-08 22:18:23 · 1041 阅读 · 0 评论 -
IEEE754浮点数算数标准
IEEE754规定:单精度浮点数字长32位,尾数长度23,指数长度8,指数偏移量127;双精度浮点数字长64位,尾数长度52,指数长度11,指数偏移量1023; 约定小数点左边隐含有一位,通常这位数是1,所以上述单精度尾数长度实际为24(默认省略小数点左边的1则为23),双精度尾数长度实际为53(默认省略小数点左边的1则问53);下面讲述使用IEEE754标准表示浮点数:176.062...转载 2019-08-08 11:51:15 · 2642 阅读 · 0 评论 -
TI的CCS如何在编译时发出提示信息
TI的CCS中没有#pragma message()预处理指令,可以使用#warn原创 2019-08-05 19:40:13 · 682 阅读 · 0 评论 -
C语言中,头文件和源文件的关系
首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段2.词法与语法分析阶段3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息。(生成.exe文...转载 2019-08-05 16:23:32 · 1356 阅读 · 0 评论 -
C语言的头文件和宏定义的一种使用方法
该方法实现功能:当编译main.c文件时,首先#define MAIN 1,所以在解析头文件variables.h时,根据variable.h中设定的关于MAIN的条件编译,会将A_string[]数组作为变量定义放置在main.c中,生成main.obj目标文件。而如下的flash.c文件在进行编译时,由于没有定义MAIN,所以在解析variable.h时,相当于extern char ...原创 2019-08-05 15:47:08 · 540 阅读 · 0 评论 -
const, volatile同时修饰一个变量
文章基础:(1) “编译器一般不为const变量分配内存,而是将它保存在符号表中,这使得它成为一个编译期间的值,没有了存储与读内存的操作。”(2)volatile的作用是“告诉编译器,i是随时可能发生变化的,每次使用它的时候必须从内存中取出i的值”。...转载 2019-08-04 16:10:51 · 848 阅读 · 0 评论 -
TMS320F28335将程序从FLASH搬移到RAM中运行详细步骤
(一)添加DSP28xxx_SectionCopy_nonBIOS.asm到工程目录下DSP28xxx_SectionCopy_nonBIOS.asm中为程序拷贝函数。定义了段名为copysections,之后将会在CMD文件添加该段。(二)修改启动文件DSP2833x_CodeStartBranch.asm程序运行后从FLASH启动,会调用code_start关闭看门狗后通过调用c_...转载 2019-08-04 09:42:09 · 3381 阅读 · 0 评论 -
RW RO ZI ROM keil中的含义
编译的一个ARM的程序,会得到这样的信息:============================================================================== Code (inc. data) RO Data RW Data ZI Data Debug 2730 19转载 2016-01-24 09:23:07 · 610 阅读 · 0 评论 -
从保护模式到实模式的转换
来自:http://blog.csdn.net/sunacmer/article/details/5310280弄了几天了,终于弄好了,呵呵,也得到了不少东西。从保护模式到是模式的转换一定要注意的有(转): 1、程序开始时在实模式下要有自己的堆栈段,进入保护模式前先暂存ss及sp的值至某内存处,以便从保护模式返回实模式后恢复到原先的堆栈。 2、返回实模式前需把各段寄转载 2015-03-04 22:39:45 · 442 阅读 · 0 评论 -
X86汇编指令小结
来自:http://blog.sina.com.cn/s/blog_4a92ce12010006m0.html一、数据传送指令1.通用数据传送指令MOV(Move)传送PUSH(Push onto the stack)进栈POP(Pop from the stack)出栈XCHG(Exchange)交换.MOV指令格式为: MOV DST,SRC执行的操作转载 2015-03-03 16:27:28 · 532 阅读 · 0 评论 -
CAN总线(一)
原文地址:CAN总线(一)作者:简单 我是一个电子菜鸟,现在从事产品研发的工作,在以后漫长的时间里会接触到很多新的IC,新的技术,新的理论,我很喜欢这种感觉。最近在接触CAN总线方面的知识,需要用CAN总线来实现电梯的并联,一脸茫然,好不容易查到一些有用的资料,发上来跟大家分享。也希望有这方面经验的大虾们能够留下你们的脚步,给点技术支持哈~转载 2014-11-13 23:07:23 · 7945 阅读 · 1 评论 -
为什么51系列单片机常用11.0592MHz…
波特率SMODTH11920010FDH960000FDH480000FAH240000F4H120000E8H30000A0H 波特率baud实际上是bit per second,每秒多少位,这样我们可以计算出传送一位需要多长原创 2014-11-13 23:09:57 · 2391 阅读 · 0 评论 -
存储器的编址、映射和重新映射
来自:http://bbs.ednchina.com/BLOG_ARTICLE_2142342.HTM 存储器的编址、映射和重新映射 理解好存储器的编址、映射和重新映射等问题,对于嵌入式编程和操作系统的理解等都有重大的帮助。所有的把嵌入式系统都可以看成一个“输入输出”系统。信息输入,经过处理,然后输出。那么输入都可以看做读存储单元,这个“存储单元”范围很广,RAM、ROM原创 2014-11-13 23:09:54 · 1240 阅读 · 0 评论 -
编译器之编程及语法Tips
1.定义一个变量在固定的地址:__ICCARM__ IAR编译器__CC_ARM Keil编译器#if defined (__ICCARM__)unsigned char ucPassword @0x20000004 = 0x01;#elif defined (__CC_ARM)unsigned char ucPassword __attribute__((at原创 2014-11-13 23:09:46 · 405 阅读 · 0 评论 -
IAR _ramfunc
来自:http://blog.csdn.net/lan120576664/article/details/14451103_ramfunc的意思就是把接下来的函数完全从FLASH复制到RAM里面执行,优点就是速度比在FLASH执行快多了,对实时性要求很高的操作有用。比如很多中断函数都会加_ramfunc,但是RAM是有限的,所以不能把太多的函数都定义为_ramfuncWarni原创 2014-11-13 23:09:41 · 1912 阅读 · 0 评论 -
一个自动化-博客
http://www.cnblogs.com/hebaichuanyeah/tag/ARMcortex m4/原创 2014-11-13 23:09:20 · 536 阅读 · 0 评论 -
c51编程中sbit sfr 用法
http://blog.chinaunix.net/uid-21515847-id-1825112.html原创 2014-11-13 23:09:10 · 807 阅读 · 0 评论 -
对通用输入输出GPIO的深入理解
http://blog.chinaunix.net/uid-21515847-id-1825092.html原创 2014-11-13 23:09:08 · 573 阅读 · 0 评论 -
IIC 概述与操作
概述与操作" TITLE="IIC 概述与操作" /> 概述与操作" TITLE="IIC 概述与操作" /> 概述与操作" TITLE="IIC 概述与操作" />原创 2014-11-13 23:09:02 · 487 阅读 · 0 评论