
单片机、STM32
主要介绍STM32单片机知识
chooseboy
这个作者很懒,什么都没留下…
展开
-
4种端接方法,教你完美解决信号端接困惑
时钟信号衰减会增加抖动,因此对驱动器输出的端接很重要。为了避免抖动和时钟质量降低的不利影响,需要使用恰当的信号端接方法。4种端接方法分享给你们如果你们还有不一样的想法,可以在文末留言哦~Z0是传输线的阻抗;ZOUT是驱动器的输出阻抗,ZIN 是接收器的输入阻抗。PS:这里仅显示CMOS和PECL/LVPECL电路。串行端接实际上,因为阻抗会随频率动态变化,难以达到阻...转载 2020-03-01 21:50:44 · 3344 阅读 · 0 评论 -
信号线/时钟线/地址线/GPIO上串联的小电阻,到底干什么用的
如果阻抗不匹配会有什么不良后果呢?如果不匹配,则会形成反射,能量传递不过去,降低效率;会在传输线上形成驻波(简单的理解,就是有些地方信号强,有些地方信号弱),导致传输线的有效功率容量降低;功率发射不出去,甚至会损坏发射设备;1、概括:高速信号线中才考虑使用这样的电阻,在低频情况下,一般是直接连接;这个电阻有两个作用,第一是阻抗匹配。因为信号源的阻抗很低,跟信号线之间阻...转载 2020-02-26 17:34:59 · 7603 阅读 · 0 评论 -
嵌入式软件工程师面试题汇总
预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)。2). 懂得预处理器将为你计算常数表...转载 2020-02-22 16:35:51 · 1572 阅读 · 2 评论 -
采用硬件I2C读取E2PROM,单片机复位发生死锁怎么办?
现象:单片机采用硬件I2C读取E2PROM,当单片机复位时,会有概率出现再无法与E2PROM通信,此时SCL为高,SDA一直为低。原因:当单片机正在和E2PROM通信,如果主正好发生打算发第9个时钟,此时SCL为高,而从开始拉低SDA为低做准备(作为ACK信号),等待主SCL变低后,从再释放SDA为高。如果此时正好单片机复位,主SCL还没来得及变低,直接变成高电平,此时从还在等待SCL变...转载 2020-02-22 16:26:35 · 723 阅读 · 0 评论 -
C语言在嵌入式系统编程时的注意事项
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。20世纪80年代,为了避免各开发厂...转载 2020-02-22 16:26:08 · 946 阅读 · 0 评论 -
什么是ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只...转载 2020-02-22 16:25:38 · 847 阅读 · 0 评论 -
嵌入式C语言优化技巧
精彩内容嵌入式系统是指完成一种或几种特定功能的计算机系统,具有自动化程度高,响应速度快等优点,目前已广泛应用于消费电子,工业控制等领域。嵌入式系统受其使用的硬件以及运行环境的限制,非常注重代码的时间和空间效率,因此选择一种合适的开发语言十分重要。目前,在嵌入式系统开发中可使用的语言很多,其中 C语言应用得最广泛。虽然用 C 语言编程具有许多优点,但基于嵌入式系统的C语言和标准 C语...转载 2020-02-22 16:25:08 · 423 阅读 · 0 评论 -
UART、RS-232、RS-422、RS-485之间有什么区别
通讯问题,和交通问题一样,也有高速、低速、拥堵、中断等等各种情况。如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车。汽车跑在路上,要遵守交通规则。如果是市内,一般限速30、40,而高速公路则可以到120。而汽车走什么路,限速多少,就要看协议怎么规定了。常见的串口协议有RS-232、RS-422、RS-485等,他们之间有何细微差别?下面我们就一起来探讨一下。一、UAR...转载 2020-02-21 12:58:00 · 2456 阅读 · 0 评论 -
STM32单片机学习笔记(超详细整理143个问题,学习必看)
1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用3、 HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8...转载 2020-02-20 11:36:12 · 2892 阅读 · 0 评论 -
简单的Bootloader怎么写?
Tips:内核从板载启动的 bootargs--内核启动参数, bootargs 是 bootloader 传递给内核的启动字符串。BootLoader的目标是启动内核, 大多数 boot loader 都包含两种不同的操作模式:"启动加载"模式和"下载"模式 。在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映...转载 2020-02-20 11:35:43 · 700 阅读 · 0 评论 -
嵌入式C高级用法
1内存管理我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。内存的使用时程序设计中需要考虑的重要因素之一,这不仅由于系统内存是有限的(尤其在嵌入式系统中),而且内存分配也会直接影响到程序的效率。因此,我们要对C语言中的内存管理,有个系统的了解。在C语言中,定义了4个内存区间...转载 2020-02-19 11:02:19 · 244 阅读 · 0 评论 -
如何保证MCU上电后RAM的初始值唯一
由于工作的原因,笔者经常接到工程师询问MCU内部的RAM上电之后的初始值到底是什么,有什么特性和规律。今天笔者就以设计过程中遇到的几个问题与大家做一个交流。首先明确一个问题,我们都知道,根据RAM的特性,MCU每次上电之后RAM里面的值是随机的。也就是说RAM上电后的初始值可以是0xAA,也可以是0x55,也可以是其它任何的值,这个都是正常的。明确了这个基本原理之后,我们来看一下下面这个...转载 2020-02-20 11:36:37 · 2036 阅读 · 0 评论 -
嵌入式C的这些高级用法
内存管理我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。内存的使用时程序设计中需要考虑的重要因素之一,这不仅由于系统内存是有限的(尤其在嵌入式系统中),而且内存分配也会直接影响到程序的效率。因此,我们要对C语言中的内存管理,有个系统的了解。在C语言中,定义了4个内...转载 2020-02-20 11:36:54 · 380 阅读 · 0 评论 -
如何用单片机实现数字滤波?附算法代码
单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差...转载 2020-02-25 22:09:17 · 1636 阅读 · 0 评论 -
一文看懂嵌入式总线的原理、分类及优缺点
总线基础总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在...转载 2020-02-23 11:02:49 · 4476 阅读 · 0 评论 -
如何看懂时序图?掌握这几个程序就够了
操作时序永远都是使用任何一片IC芯片的最主要的内容。一个芯片的所有使用细节都会在它的官方器件手册上包含。所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握。介于中国目前的芯片设计能力有限,所以大部分的器件都是外国几个IC巨头比如TI、AT、MAXIM这些公司生产的,器件资料自然也是英文的多,所以,英文的基础要在阅读这些数据手册时得到提高哦。即便有中文翻译版本,还是...转载 2020-02-25 22:10:13 · 6260 阅读 · 2 评论 -
ROM、RAM、DRAM、SRAM和FLASH究竟有何区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只...转载 2020-02-21 12:51:59 · 470 阅读 · 0 评论 -
干货!串口通讯的起始、数据、停止位都是怎么分配的?
串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。1.串行通信在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为...转载 2020-02-21 12:54:46 · 14097 阅读 · 2 评论 -
MCU如何在扩展的SDRAM上运行程序?
在使用MCU的嵌入式系统设计中,当程序或者数据内存占用太大而无法放入片上闪存或SRAM时,开发者通常考虑使用SDRAM。别问我为什么你的MCU不支持SDRAM。SDRAM是同步动态随机存取存储器的缩写。在微控制器应用中,微控制器通过使用外部存储控制器(EMC)操作访问SDRAM ,SDRAM时钟频率通常为100MHz或133MHz。外部存储控制器通常不支持DDR SD...转载 2020-02-21 12:53:23 · 1004 阅读 · 0 评论 -
5分钟了解单片机数据、地址、控制总线结构
一、总线概述计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) 。计算机的总线分为控制总线、地址总线和数据总线等三种。而数据总线用于传送数据,控制总线用于传送控制信号, 地址总线则用于选择存储单元或外设。二、单片机的三总线结构51系列单...转载 2020-02-21 12:53:55 · 12017 阅读 · 0 评论 -
单片机软件抗干扰的这几种办法,以后不能说不知道了
在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。1、软件抗干扰方法的研究在工程实践中,软件抗干扰研究的内容主要是:一、消除模拟输入信号的噪声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。(1) 指令冗余...转载 2020-02-21 12:55:14 · 2094 阅读 · 0 评论 -
STM32独立看门狗(IWDG)和窗口看门狗(WWDG)的区别
1.看门狗介绍 看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。使用看门狗保证系统正常地运行是非常有必要的。我们在设计产品时,代码以及硬件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常对其进行复位,系统的可靠性将大打折扣。看门狗分为软件看门狗和硬件看门狗两类,其原理都是使用一个独立定时器来计时,超出时间就会产生复位信号,主要区别看是否具有独立的硬件结构,如果有,就是...转载 2020-02-21 12:55:40 · 11381 阅读 · 0 评论 -
stm32启动过程分析
一、stm32启动过程的解析stm32上电后,是怎么样找到main函数的呢?很显然,stm32没办法从硬件上找到main函数的入口地址,因为使用C语言开发后,变量和函数的地址由编译器自动分配,这样就导致main函数的入口地址在stm32的内部存储空间中不再是固定的。那么stm32是通过什么东西找到main函数的入口地址呢,在跳转到main函数之前,做了什么?其实,stm32上电后,...转载 2020-02-21 12:55:58 · 1042 阅读 · 0 评论 -
77条STM32知识汇总
1、 SYSCLK时钟源有三个来源:HSI RC、HSE OSC、PLL2、 MCO[2:0]可以提供4不同的时钟同步信号,PA83、 GPIO口貌似有两个反向串联的二极管用作钳位二极管。4、 ICode总线,DCode总线、系统总线、DMA总线、总线矩阵、AHB/APB桥5、在使用一个外设之前,必须设置寄存器RCC_AHBENR...转载 2020-02-21 12:57:12 · 290 阅读 · 0 评论 -
选择晶振时需要考虑的五个关键点
在设计中,大多数电子系统需要某种振荡器作为其关键功能块。一些典型的用途包括:用于同步操作的数字系统中的时钟;用于接收器或发射器的稳定RF信号;用于精确测量的精确频率参考;或用于精确计时的实时时钟。系统规范以及要求振荡器所起的作用将决定晶振的大多数参数。任何振荡器中的关键部件都是谐振器,它将控制频率并确定可以实现哪种水平的稳定性。尽管采用LC或RC谐振器实现的简单振荡器可满足一...转载 2020-03-05 08:36:26 · 1977 阅读 · 0 评论 -
I2C总线概述及时序总结
I2C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。I2C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边...转载 2020-02-22 16:36:44 · 1537 阅读 · 0 评论 -
STM32的启动流程到底是怎样的?
关于STM32启动文件中启动流程的问题,今天就说下相关内容吧。1.写在前面首先,你要知道STM32启动文件中启动流程,你就需要掌握一点汇编基础知识。汇编语言属于机器语言,或者说低级语言,C语言属于高级语言,所以,汇编和C语言在语法上差异很大。如果你学底层开发,汇编的一些基础知识需要掌握。不需要精通,但需要看懂常见的汇编代码。2.说明STM32的...转载 2020-02-22 16:34:48 · 279 阅读 · 0 评论 -
深入分析MCU堆栈的作用,以及该如何设置堆栈大小
写在前面我们都知道堆栈位于RAM中,现在MCU的RAM相对较大(几十上百K),所以分配的堆栈也是足够大,很多人都不怎么关注这个堆栈的大小。但是,以前MCU的RAM比较小,甚至1K都不到,所以,以前的工程师就比较关心堆栈的大小。对于小项目而言,可能我们不用关心堆栈大小。但是,如果项目大了,你就要注意了,你堆栈大小设置不合理,很有可能导致Fault。想要知道...转载 2020-02-25 22:11:17 · 1178 阅读 · 1 评论 -
一文读懂 4 线 SPI
串行外设接口 (SPI) 是微控制器和外围 IC(如传感器、ADC、DAC、 移位寄存器、SRAM等)之间使用最广泛的接口之一。SPI 是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI 接口可以是3线式或4线式。本文重点介绍常用的4线SPI接口。1接 口4 线 SPI 器件有四个信号: 时钟(SPIC...转载 2020-02-27 16:51:13 · 5119 阅读 · 0 评论 -
C程序到底是怎样运行在硬件设备上?
本文转载自网络,版权归原作者,如果涉及侵权,请及时联系!C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对...转载 2020-02-27 16:50:12 · 821 阅读 · 0 评论 -
嵌入式面试题 | 为年后求职找工作做准备
虽然今年疫情推迟了上班时间,但是该做的事还是要做,求职找工作在恢复工作之后依然会进行,刚好趁此机会复习一下。下面是关于嵌入式常见的面试题:‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧END‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧...转载 2020-02-23 11:07:33 · 238 阅读 · 0 评论 -
菜鸟晋级篇!一篇文章读懂看门狗定时器!
作为电子一名电子工程师,对看门狗定时器都一定都很熟啦,今天就和大家一起梳理一下看门狗方面的知识,菜鸟们就好好学习一下,每天进步一点点,大神们看到此文有什么不足欢迎发表自己的高见!看门狗是什么?看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,在单片机程序的调试和运行中都有着重要的意义。它的主要功能是在发生软件故障时,通过使器件复位(如果软件未将器件清零...转载 2020-02-16 21:31:26 · 1933 阅读 · 0 评论 -
SPI、I2C、UART、I2S、GPIO、SDIO、CAN,你能分清楚吗
总线,总线,总要陷进里面。这世界上的信号都一样,但是总线却成千上万,让人头疼。总的来说,总线有三种:内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。...转载 2020-02-16 21:23:43 · 785 阅读 · 0 评论 -
单片机程序架构之时间片轮询法
时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中使用了这一方法。不过我们这里要说的这个时间片轮询法并不是挂在操作系统下,而是在前后台程序中使用此法。也是本贴要详细说明和介绍的方法。对于时间片轮询法,虽然有不少书籍都有介绍,但大多说得并不系统,只是提提概念而已。下面本人将详细介绍本人模式,并参考别人的代码建立的一个时间片轮询架构程序的方法...转载 2020-02-13 22:15:48 · 1884 阅读 · 0 评论 -
STM32大神笔记,超详细单片机学习汇总资料
1、在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。2、FSMC中的DATASET和ADDSET的设置需要参看外部存储器的时序图来确定。一般而...转载 2020-02-22 16:31:40 · 923 阅读 · 0 评论