Bruceoxl
BruceOu,于2017年10月13日开始在CSDN上写博客,博客专注于嵌入式开发、人工智能等。欢迎各位朋友来访!
邮箱: ouxiaolong@bruceou.cn
展开
-
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 3]
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 1]《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 2]7 OpenOCDOpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包。OpenOCD官网OpenOCD下载地址7.1 OpenOCD安装下载OpenOCD,最新软件版本为0.11.0,这里是使用源码编译安装。第一步:下载并解压第二步:配置OpenOCD$ ./configure 配置原创 2021-09-04 08:54:18 · 1347 阅读 · 0 评论 -
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 3]
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 1]《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 2]前面的章节讲解了STM32的新建工程到编译下载,接下来将讲解STM32的调试。6 OpenOCDOpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包。OpenOCD下载地址6.1 OpenOCD安装下载后解压即可。打开share/openocd/scripts,里面有很多提前写好的配置原创 2021-09-04 00:02:05 · 1935 阅读 · 0 评论 -
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 2]
5 make编译源码前面通过 STM32CubeMX 生成 Makefile 工程,那么就需要一个工具来识别Makefile文件,也就是make工具,在Linux中已经自带make了,这里就不需要安装了。在编译之前,先来看看什么是makefile?Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些文件不需要编译,那些文件需要先编译,那些文件需要后编译,那些文件需要重建等等。编译整个工程需要涉及到的,在 Makefile 中都可以进原创 2021-08-31 22:06:30 · 1068 阅读 · 0 评论 -
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 1]
笔者在前面写了Windows版的开发环境搭建,今天来了Linux版本的。好了,言归正传,接下来说说STM32的开发都需要那些软件吧,而且都是开源免费的,随便你玩!(1) STM32CubeMX:STM32CubeMX是一个配置STM32代码的工具,用于生成带makefile的HAL库工程。注意STM32CubeMX是依赖Java的,所以要确保你电脑上安装了JRE。(2) VSCode:超好用的编辑器,支持Windows、Linux、Mac,关键还免费,可谓业界良心了。(3) GNU Arm Embe原创 2021-08-30 23:18:31 · 2553 阅读 · 0 评论 -
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 2]
4 make工具安装前面通过 STM32CubeMX 生成 Makefile 工程,那么就需要一个工具来识别Makefile文件,也就是make工具,在Linux中已经自带make了,在Windows就需要安装make工具。在安装make工具之前,先来看看什么是makefile?Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些文件不需要编译,那些文件需要先编译,那些文件需要后编译,那些文件需要重建等等。编译整个工程需要涉及到的,原创 2021-08-29 22:05:57 · 1068 阅读 · 1 评论 -
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 1]
Keil MDK、IAR等工具是各类STM32单片机使用的主要IDE,不过都是收费的,在使用中很可能牵扯到一定的版权问题。GCC(GNU Compiler Collection)作为GNU计划的一部分,是完全免费的,使用GCC的代价仅是对造成的不良后果(比如程序跑飞把外围电路烧了,或者死机崩溃丢失了数据之类的问题)负全责,即GPL协议的“你随便用你修改,但出了事儿别找我”。基于MDK、IAR的开发环境搭建请查看笔者博文:开发环境搭建 STM32新建工程及配置好了,言归正传,接下来说说STM32的开发原创 2021-08-29 10:10:27 · 3582 阅读 · 3 评论 -
《嵌入式-STM32开发指南》第三部分 外设篇 - 第5章 光敏传感器
5.1 理论分析5.1.1光敏电阻概述光敏电阻或光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性,其工作原理是基于内光电效应。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。光敏电阻对光线十分敏感,其在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ。光敏电阻的特殊性能,随着科技的发展将得到极其广泛应用。光敏电阻器一般用于光的测量原创 2021-06-26 21:38:42 · 7108 阅读 · 9 评论 -
《嵌入式-STM32开发指南》第三部分 外设篇 - 第4章 超声波测距
4.1 理论分析4.1.1超声波概述人类耳朵能听到的声波频率为20Hz~20000Hz。当声波的振动频率小于20Hz或大于20KHz时,我们便听不见了。因此,我们把频率高于20000赫兹的声波称为“超声波”(ultrasonic)。通常的超声波频率为1兆赫兹~5兆赫兹。它的方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波原创 2021-06-06 08:53:11 · 7545 阅读 · 10 评论 -
《嵌入式-STM32开发指南》第三部分 外设篇 - 第3章 继电器
3.1 理论分析3.1.1继电器概述继电器(relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电 路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。图1继电器3.1.2继电器原理电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中原创 2021-05-30 22:52:45 · 10694 阅读 · 10 评论 -
《嵌入式-STM32开发指南》第三部分 外设篇 - 第2章 温度传感器DS18B20
2.1 理论分析2.1.1概述DS18B20 是 DALLAS 最新单线数字温度传感器,新的"一线器件"体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器。DS18B20采用的单总线协议,也就是只需占用主机一个I/O口,无需其他外围电路,直接将环境温度转换为数字信号,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。另外,以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量原创 2021-05-23 08:08:47 · 7905 阅读 · 9 评论 -
《嵌入式-STM32开发指南》第三部分 外设篇 - 第1章 温湿度传感器DHT11
1.1理论分析1.1.1 DHT11 介绍DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。DHT11传感器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在 OTP 内存中,传感器内部在检测信号的处理过原创 2021-05-18 07:40:03 · 9245 阅读 · 14 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第17章 SPI(HAL库)
17.1 SPI简介SPI,是Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。是一种高速全双工的通信总线,它由摩托罗拉公司提出,当前最新的为 V04.01—2004 版。它被广泛地使用在ADC、LCD 等设备与 MCU 间通信的场合。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管原创 2021-04-05 09:26:06 · 1517 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第16章 I2C(HAL库)
16.1 I2C工作原理16.1.1 I2C串行总线概述I2C总线是PHLIPS公司推出的一种双线式串行总线,是具备多主机系统所需的总线裁决和高低速器件同步功能的高性能串行总线。用于连接微悾器及外围设备。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 物理层1)它只使用两条总线线路 :一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。见图 1。2)每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。3)多主机同时使用总线时,为原创 2021-04-04 09:28:45 · 2070 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第15章 程序加密(HAL库)
15.1程序加密工作原理STM32通过读取芯片唯一ID号来实现程序的保护,防止被抄袭。96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。在这里要提醒读者,要注意大端小端模式。关于大小端请看笔者博文:深入剖析大小端15.2程序加密具体代码分析其实读取ID很简单,如果存储ID的变量为8位。则需要读取12次,如下所示。/*原创 2021-03-25 22:52:28 · 910 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第14章 STM32的存储结构(HAL库)
14.1 STM32存储结构的工作原理14.1.1 STM32内核(Cortex-M3)的存储器映射存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOTBLOCK等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义。如下图,是Cortex-M3存储器映射结构图。 图1Cortex-M3存储器映射 Cortex-M3是32位的内核,因此其PC指针可以指向2^32=4G的地址空间,也就是0x00原创 2021-03-25 22:15:16 · 1362 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第13章 CRC(HAL库)
13.1 CRC的校验原理循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果。在其他的应用中, CRC技术主要应用于核实数据传输或者数据存储的正确性和完整性。标准EN/IEC 60335-1即提供了一种核实闪存存储器完整性的方法。 CRC计算单元可以在程序运行时计算出软件的标识,之后与在连接时生成的参考标识比较,然后存放在指定的存储器空间。那么首先来看看CRC校验原理。13.1.1基本原理CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(原创 2021-03-21 09:27:55 · 3026 阅读 · 9 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第12章 看门狗(HAL库)
STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬,本章我们主要分析这两只看门狗的功能框图和它的应用。12.1独立看门狗12.1.1独立看门狗工作原理独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模原创 2021-03-06 19:34:53 · 1042 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第11章 RTC(HAL库)
11.1 RTC工作原理11.1.1 RTC简介STM32 的 RTC 外设,实质是一个掉电后还继续运行的定时器。从定时器的角度来说,相对于通用定时器 TIM 外设,它十分简单,只有很纯粹的计时功能(当然,可以触发中断);但从掉电还继续运行的角度来说,它却是 STM32 中唯一一个具有如此强大功能的外设。所以 RTC 外设的复杂之处并不在于它的定时功能,而在于它掉电还继续运行的特性。以上所说的掉电,是指主电源 VDD断开的情况,为了 RTC 外设掉电继续运行,必须给STM32 芯片通过 VBAT引脚接原创 2021-03-06 11:33:02 · 2085 阅读 · 1 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第10章 低功耗(HAL库)
10.1低功耗工作原理STM32的工作电压(VDD)为2.0~3.6V。通过内置的电压调节器提供所需的1.8V电源。当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。图1电源管理在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。STM32F10xxx有三种低功耗模式:● 睡眠模式(Cortex™-M3内核停原创 2021-02-22 21:42:58 · 2193 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第9章 RCC(HAL库)
9.1 RCC的工作原理在讲解RCC之前,我们现回顾一下时钟树。在《详解STM32时钟系统》一章中,我们详细讲解了STM32的系统时钟,在这里就当总结前文的内容,不再一一讲解。详解STM32时钟系统图1时钟树9.2 STM32Cube生成工程本工程是在流水灯的基础上进行的,基本配置都差不多,只是针对RCC的配置进行详细讲解。对STM32芯片而言,RCC配置的重要性不言而喻。在STM32CubeMX中,RCC的相关设置却非常简单,因为STM32CubeMX把时钟系统独立出来单独配置。在操作界面,原创 2021-02-18 09:44:27 · 2657 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第8章 模拟输入输出-内部温度传感器(HAL库)
3.1内部温度传感器工作原理STM32 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。该温度传感器在内部和 ADCx_IN16 输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是 17.1μs。 STM32 的内部温度传感器支持的温度范围为: -40~125度。精度比较差,为±1.5℃左右。STM32 内部温度传感器的使用很简单,只要设置一下内部 ADC,并激活其内部通道就差不多了。关于 ADC 的设置,我们在前面的章节已经进行了详细的介绍,这里原创 2021-02-18 09:12:26 · 2237 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第8章 模拟输入输出-DAC(HAL库)
2.1 DAC工作原理2.1.1 DAC介绍数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+ 以获得更精确的转换结果。图1 DAC 通道模块框图2.1.2 DAC主要特征原创 2021-02-17 13:55:45 · 2384 阅读 · 3 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第8章 模拟输入输出-ADC(HAL库)
1 ADC (HAL库)1.1 ADC工作原理STM32f103 系列有 3 个 ADC,精度为 12 位,每个 ADC 最多有 16 个外部通道。其中ADC1 和 ADC2 都有 16 个外部通道, ADC3 根据 CPU 引脚的不同通道数也不同,一般都有8 个外部通道。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC 的输入时钟不得超过14MHz,它是由PCLK原创 2020-11-14 12:43:03 · 5394 阅读 · 7 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章DMA(HAL库)
标准库3.5实现:《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章 DMA7.1 DMA工作原理7.1.1 DMA介绍DMA (Direct Memory Access,直接存储器存取),是一种可以大大减轻 CPU 工作量的数据存取方式,DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输,因而被广泛地使用。早在 8086 的应用中就已经有 Intel 的 8237 这种典型的 DMA 控制器,而 STM32 的 DMA 则是以类似原创 2020-10-24 23:37:32 · 1491 阅读 · 5 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第6章串口通信(HAL库)
标准库3.5实现:《嵌入式-STM32开发指南》第二部分 基础篇 - 第6章串口通信6.1串口简介通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通原创 2020-10-20 22:04:59 · 4071 阅读 · 3 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第5章 PWM(HAL库)
标准库3.5实现:《嵌入式-STM32开发指南》第二部分 基础篇 - 第5章 PWM5.1 PWM_输出5.1.1 PWM输出的工作原理脉冲宽度调制(PWM),是英文“ Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。 简单一点,就是对脉冲宽度的控制。STM32 的定时器除了 TIM6 和 7(基本定时器)。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7原创 2020-10-18 20:26:15 · 2263 阅读 · 2 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第4章 定时器(HAL库)
标准库3.5实现:《嵌入式-STM32开发指南》第二部分 基础篇 - 第4章 定时器4.1定时器的工作原理STM32有三类定时器,基本定时器就是单纯的定时计数器,通用定时器多了四个通道,相对应的增加了功能,高级定时器具有基本,通用定时器的所有的功能,并且添加了其他功能。定时器的对比特性如下表所示。表1各个定时器特征 
标准库3.5实现:《嵌入式-STM32开发指南》第二部分 基础篇 - 第3章 按键3.1普通方式3.1.1 普通方式工作原理按键 GPIO 端口有两个方案可以选择,一是采用上拉输入模式,因为按键在没按下的时候,是默认为高电平的,采且内部上拉模式正好符合这个要求。第二个方案是直接采用浮空输入模式,因为按照硬件电路图,在芯片外部接了上拉电阻,其实就没必要再配置成内部上拉输入模式了,因为在外部上拉与内部上拉效果是一样的。图1按键电路3.1.2 STM32Cube生成工程关于如何使用使用STM32C原创 2020-10-07 19:39:51 · 3389 阅读 · 1 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第2章 Systick系统定时器(HAL库)
关于STM32 的时钟系统,Systick系统定时器工作原理分析以及Systick系统定时器寄存器分析请看笔者的上一篇博文。第2章 Systick系统定时器2.1 STM32Cube新建工程关于如何使用使用STM32Cube新建工程在前文已经讲解过了,这里直说配置GPIO部分内容。本文要实现流水灯,其实输出为初始化设置为高电平还是低电平都可以,因为流水灯需要不断反转第1章 GPIO(HAL库)1.GPIO配置我们将PB0、PG6、PG7配置输出模式(高电平、低电平均可)、输出速率、上/下拉等,默原创 2020-10-01 10:45:33 · 2315 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第一部分 入门篇 - 第8章 STM32CubeMX软件安装与使用
8.1 JDK安装安装STM32CubeMX之前,电脑中要有java运行时环境(JRE),否则会报错:图1因为STM32Cube是Java写的,不然怎么能跨平台,这也是为什么在安装前需要检查Java环境。如果你安装过JDK,那么跳过此步骤即可。STM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。http://www.oracle.com/technetwork/java/javase/downloads/jre8-do原创 2020-09-17 21:37:13 · 1199 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 -第1章 GPIO流水灯(HAL库)
在阅读本文之前,先看看标准固件库的内容。《嵌入式-STM32开发指南》第二部分 基础篇 -第1章 GPIO1.1 GPIO流水灯硬件电路分析发光二极管是属于二极管的一种,具有二级管单向导电特性,即只有在正向电压(二极管的正极接正,负极接负)下才能导通发光。PB0引脚接发光二极管(LED1)的正极,所以PB0引脚输出高电平LED1亮,PB0引脚输出低电平LED1熄灭,,LED2,LED3同理。图1 LED电路图在上一章,我们知道STM32的引脚有8中模式,我们要点亮LED,显然是输出模式,那么则要原创 2020-09-16 23:23:55 · 1952 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第一部分 入门篇 - 第7章 STM32固件库与STM32Cube产品介绍
自STM32标准库出道以来,备受广大工程师和公司的喜爱,但是,从2013年开始,ST逐渐停止了对标准外设库的更新和维护。目前,ST全力推崇HAL库,STM32Cube就是与HAL库配合使用图形化编程官方IDE。7.1 STM32库简介到目前为止,ST有标准外设库(SPL 库)、HAL 库、LL 库 三种。前两者都是常用的库,后面的 LL 库是 ST 最近才添加,随 HAL 源码包一起提供,目前支持的芯片也偏少。各库如下所示:图1 标准库、HAL 库、LL 库对比其中,SPL 库 和 HAL 库两者原创 2020-09-13 20:32:59 · 1419 阅读 · 2 评论 -
《嵌入式-STM32开发指南》第一部分 入门篇 - 第3章搭建开发环境
3.1简介STM常用的集成开发环境(IDE)有KEIL和IAR。表1 IDE相应工具图1 IDE编译过程3.2 KEIL安装3.2.1概述Keil MDK(Microcontroller Developer Kit微控制器开发工具)-ARM是美国Keil软件公司(现已被ARM公司收购)出品的支持ARM微控制器的一款IDE(集成开发环境)。MDK-ARM包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件。具有业行领先的ARM C/C++编译工具链,完美支持Cortex-M、原创 2020-09-12 13:57:21 · 1621 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第一部分 入门篇 - 第2章 硬件资源介绍
在讲解本节前,笔者先声明下,笔者在写这套教程前,参看了很多开发板,目前手头上的STM32F1不下十余种,每一块板子最大的区别就是CPU型号不同,外设不同,其最小系统都是一样的。外设这个说起就就很多,笔者本文只讲最小系统部分,以后在文章中,用到哪块外设在具体讲解相关硬件。2.1 微处理器本教程主要以STM32F103ZET6为MCU,在讲解芯片资源之前,我们先看看STM32的命名规则,如下图。图1STM32命名规则该芯片是STM32F103 里面配置非常强大的了,它拥有的资源包括:64KB SRAM原创 2020-09-12 13:27:33 · 2171 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第三部分 基础篇 - 第17章 SPI
2.1 SPI简介SPI,是Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。是一种高速全双工的通信总线,它由摩托罗拉公司提出,当前最新的为 V04.01—2004 版。它被广泛地使用在ADC、LCD 等设备与 MCU 间通信的场合。SPI接口主要应用在 EEPROM,FLASH,实时时钟,A...原创 2018-09-24 10:08:18 · 1115 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第16章 I2 C
1.1 I2C工作原理1.1.1 I2C串行总线概述I2C总线是PHLIPS公司推出的一种双线式串行总线,是具备多主机系统所需的总线裁决和高低速器件同步功能的高性能串行总线。用于连接微悾器及外围设备。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 物理层1)它只使用两条总线线路 :一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。见图 1。2)每个连...原创 2018-09-23 21:52:19 · 1378 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第15章 程序加密
15.1程序加密工作原理STM32通过读取芯片唯一ID号来实现程序的保护,防止被抄袭。96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。在这里要提醒读者,要注意大端小端模式。15.2程序加密具体代码分析...原创 2018-02-25 22:05:51 · 757 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第14章 STM32的存储结构
14.1 STM32存储结构的工作原理14.1.1 STM32内核(Cortex-M3)的存储器映射存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOTBLOCK等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义。 如下图,是Cortex-M3存储器映射结构图。 图1...原创 2018-02-25 21:25:00 · 969 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第13章 CRC
13.1 CRC的校验原理循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果。在其他的应用中, CRC技术主要应用于核实数据传输或者数据存储的正确性和完整性。标准EN/IEC 60335-1即提供了一种核实闪存存储器完整性的方法。 CRC计算单元可以在程序运行时计算出软件的标识,之后与在连接时生成的参考标识比较,然后存放在指定的存储器空间。那么首先来看看CR...原创 2018-02-25 21:09:02 · 1836 阅读 · 0 评论 -
《嵌入式-STM32开发指南》第二部分 基础篇 - 第9章RCC
5.1树的概念树(tree)是n(n>=0)个节点的有限集合T,它满足两个条件: 1)有且仅有一个特定的称为根(root)的节点; 2)其余的节点可以分为m(m>=0)个互不相交的有限结合T1、T2、…、Tm,其中每一个集合又是一棵树,并成为其根的子数(Subtree)。 图1 树的逻辑结构:树中任何节点都可以有零个或多个直接后继节点(子节点),但至多只有一个直接前驱...原创 2018-02-25 17:35:56 · 1887 阅读 · 0 评论