【STM32】F103(64K/128K Flash)外设概述

这篇具有很好参考价值的文章主要介绍了【STM32】F103(64K/128K Flash)外设概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍的是STM32F103 中等容量产品(STM32F103x8xx和STM32F103xBxx)的硬件数据,即64KB或128KB Flash,20KB SRAM。

ST官网资料:https://www.st.com/zh/microcontrollers-microprocessors/stm32f103.html

ST官方的中等容量产品Datasheet:https://www.st.com/resource/en/datasheet/stm32f103c8.pdf

之前的文章:https://blog.csdn.net/weixin_43764974/category_11021363.html

一、概览

1.1 STM32F103 系列芯片容量的区分

STM32的小容量、中等容量和大容量指的是芯片的闪存(Flash)容量的大小,一般有以下的划分1:

  • 小容量:闪存小于等于32K
  • 中等容量:64K小于等于闪存小于等于128K
  • 大容量:闪存大于等于256K

STM32F103xx是一个完整的系列,其成员之间是完全地脚对脚兼容,软件和功能上也兼容。在参考手册中,STM32F103x4和STM32F103x6被归为小容量产品,STM32F103x8和STM32F103xB被归为中等容量产品,STM32F103xC、STM32F103xD和STM32F103xE被归为大容量产品。

STM32F103x4、STM32F103x6、 STM32F103xC、STM32F103xD和STM32F103xE可直接替换中等容量的STM32F103x8/B产品,为用户在产品开发中尝试使用不同的存储容量提供了更大的自由度。

同时,STM32F103xx增强型产品与现有的STM32F101xx基本型和STM32F102xx USB基本型产品全兼容。

Flash相当于你电脑的SSD,SRAM相当于你电脑的内存。

【STM32】F103(64K/128K Flash)外设概述

之前的文章也讲过,根据芯片的具体名称来确定内核、引脚数、Flash容量、封装等信息:

【STM32】F103(64K/128K Flash)外设概述

1.2、外设概览

STM32F103系列不同容量产品的外设概览:
【STM32】F103(64K/128K Flash)外设概述

STM32F103中等容量产品外设对比:

【STM32】F103(64K/128K Flash)外设概述

二、具体

STM32F103模块框图(128KB Flash+20KB SRAM):
【STM32】F103(64K/128K Flash)外设概述

2.1 内核、存储、CRC计算单元

  • STM32 F1系列都是ARM的Cortex™-M3内核。
    ARM的Cortex™-M3是32位的RISC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上发挥了ARM内核的高性能。
    STM32F103xx增强型系列拥有内置的ARM核心,因此它与所有的ARM工具和软件兼容。

  • 中等容量产品的Flash是64KB或128KB,用于存放程序和数据。

  • 20K字节的内置SRAM,CPU能以0等待周期访问(读/写)。

  • 64KB ROM,通常存储了一些固定的代码和数据,这些内容是由芯片制造商预先编程的。ROM中的代码主要包括启动代码(Bootloader)和一些底层的系统初始化代码。启动代码负责在芯片上电或复位时进行初始化,并加载应用程序代码到Flash或其他可写存储器中。系统初始化代码则负责配置系统时钟、中断控制器、外设等,为应用程序提供必要的环境。我们一般不关心ROM,只关注Flash和SRAM。

  • CRC(循环冗余校验)计算单元使用一个固定的多项式发生器,从一个32位的数据字产生一个CRC码。
    在众多的应用中,基于CRC的技术被用于验证数据传输或存储的一致性。在EN/IEC 60335-1标准的范围内,它提供了一种检测闪存存储器错误的手段,CRC计算单元可以用于实时地计算软件的签名,并与在链接和生成该软件时产生的签名对比。

STM32的CRC单元是一个硬件外设,用于计算循环冗余校验码,以检测数据的完整性和正确性。它使用一个固定的多项式0x4C11DB7,与以太网协议相同。它可以对输入和输出数据进行位反转操作,以适应不同的CRC标准。它有一个32位的数据寄存器,一个8位的通用寄存器,和一个32位的CRC寄存器。

STM32的CRC单元可以用于通信协议、数据存储、远程升级等应用场景,提供硬件支持,节省代码空间和CPU时间。它也可以用于验证Flash的完整性,通过在IAR中配置CRC计算参数,自动对整个Flash空间进行CRC计算,并将结果放在Flash末尾。

https://blog.csdn.net/ybhuangfugui/article/details/109831213

2.2 嵌套向量中断控制器(NVIC)

STM32F103xx增强型产品内置嵌套的向量式中断控制器,能够处理多达43个可屏蔽中断通道(不包括16个Cortex™-M3的中断线)和16个优先级。

  • 紧耦合的NVIC能够达到低延迟的中断响应处理
  • 中断向量入口地址直接进入内核
  • 紧耦合的NVIC接口
  • 允许中断的早期处理
  • 处理晚到的较高优先级中断
  • 支持中断尾部链接功能
  • 自动保存处理器状态
  • 中断返回时自动恢复,无需额外指令开销
    该模块以最小的中断延迟提供灵活的中断管理功能。

NVIC是Nested Vectored Interrupt Controller的缩写,意思是嵌套向量中断控制器。它是一种硬件外设,用于管理和分配处理器中的中断请求。它为CPU的中断请求提供了一个优先级和屏蔽方案,以便CPU可以更好地处理中断请求。NVIC还支持不同的优先级和预先定义的中断源,其中一些可以由外部和内部事件触发。

NVIC有以下主要特性:

  • 支持1到240个可屏蔽的中断源
  • 支持16个优先级,每个优先级可以进一步分为子优先级
  • 支持嵌套中断,即在处理一个低优先级的中断时,可以暂停并响应一个高优先级的中断
  • 支持向量表重定位,即可以将向量表放在不同的存储区域
  • 支持尾链技术,即在返回一个中断前,可以检查是否有新的中断发生,并直接跳转到新的中断处理程序,而不用恢复原来的状态

2.3 外部中断/事件控制器(EXTI)

外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求。

每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿),并能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。多达80个通用I/O口连接到16个外部中断线。

2.4 时钟和启动

系统时钟的选择是在启动时进行,复位时内部8MHz的RC振荡器被选为默认的CPU时钟,随后可以选择外部的、具失效监控的4~16MHz时钟;当检测到外部时钟失效时,它将被隔离,系统将自动地切换到内部的RC振荡器,如果使能了中断,软件可以接收到相应的中断。同样,在需要时可以采取对PLL时钟完全的中断管理(如当一个间接使用的外部振荡器失效时)。

多个预分频器用于配置AHB的频率、高速APB(APB2)和低速APB(APB1)区域。AHB和高速APB的最高频率是72MHz,低速APB的最高频率为36MHz。

时钟树:

【STM32】F103(64K/128K Flash)外设概述

2.5 自举模式与程序下载

STM32的自举模式是指STM32在复位后,根据BOOT[1:0]引脚的状态,选择不同的存储器作为启动源的模式。STM32有三种自举模式,分别是:

  • Main Flash memory(BOOT1=x BOOT0=0):从STM32内置的Flash中启动,这是正常的工作模式。
  • System memory(BOOT1=0 BOOT0=1):从STM32自带的BootLoader中启动,这种模式可以通过串口或USB等接口重新编程Flash。
  • Embedded Memory(BOOT1=1 BOOT0=1):从STM32内置的SRAM中启动,这种模式可以用于调试。

STM32的自举模式可以用于不同的应用场景,比如远程升级、调试接口恢复、向量表重定位等。


下载程序的时候,选择哪种模式,取决于使用的下载工具和接口。一般来说,有以下几种情况:

  • 如果使用JTAG或SWD接口,可以选择Main Flash memory模式,这种情况下,可以直接通过调试器将程序下载到STM32内置的Flash中,并进行调试。
  • 如果使用串口或USB接口,可以选择System memory模式,这种情况下,需要使用STM32自带的BootLoader或者第三方的BootLoader软件,通过串口或USB将程序下载到STM32内置的Flash中。下载完成后,需要将BOOT0引脚接地,重新上电或复位,才能运行程序。
  • 如果使用其他的存储器,比如外部的Flash或者SD卡等,可以选择Embedded Memory模式,这种情况下,需要在STM32内置的SRAM中运行一个自定义的BootLoader程序,通过某种方式(比如串口、USB、SPI等)将程序从外部存储器读取到STM32内置的Flash中,并跳转到程序入口执行。

Main Flash memory和System memory的区别主要有以下几点:

  • Main Flash memory是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。System memory是STM32自带的BootLoader,这种模式启动的程序功能是由厂家设置的,一般用于通过串口或USB等接口重新编程Flash。
  • Main Flash memory的容量一般比System memory大,可以存放更多的代码和数据。System memory的容量一般比较小,只能存放一个固定的BootLoader程序。
  • Main Flash memory可以支持XIP(执行就地),也就是可以直接从Flash中运行代码,无需拷贝到内存中。System memory不支持XIP,需要将代码拷贝到内存中才能运行。
  • Main Flash memory可以通过不同的方式进行编程和擦除,比如JTAG、SWD、IAP等。System memory只能通过厂家提供的BootLoader进行编程和擦除,而且只能按整个Block进行擦除。

2.6 供电与低功耗模式

供电:

  • VDD = 2.0~3.6V:VDD引脚为I/O引脚和内部调压器供电。
  • VSSA,VDDA = 2.0~3.6V:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。使用ADC时,VDDA不得小于2.4V。VDDA和VSSA必须分别连接到VDD和VSS。
  • VBAT = 1.8~3.6V:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。

VDD 、VSS、VSSA、VDDA 、 VBAT 是STM32芯片的电源引脚,它们的含义如下:

  • VDD 是芯片的工作正电压,一般为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源。
  • VSS 是芯片的工作负电压,一般接地。
  • VDDA 是芯片的工作模拟正电压,为所有的模拟电路部分供电,包括ADC模块,复位电路,PVD(可编程电压监测器),PLL,上电复位(POR)和掉电复位(PDR)模块,控制VBAT切换的开关等。即使不使用ADC功能,也需要连接VDDA,强烈建议VDD和VDDA使用同一个电源供电。
  • VSSA 是芯片的工作模拟负电压,一般接地。如果有VREF- 引脚 (根据封装而定),它必须连接到VSSA,确保共地。
  • VBAT 是电池或其他电源供电引脚,当VDD 掉电后,通过VBAT 脚为实时时钟 (RTC)和备份寄存器提供电源。

【STM32】F103(64K/128K Flash)外设概述

供电监视器:

内部集成了上电复位(POR)/掉电复位(PDR)电路,该电路始终处于工作状态,保证系统在供电超过2V时工作;当VDD低于设定的阀值(VPOR/PDR)时,置器件于复位状态,而不必使用外部复位电路。

器件中还有一个可编程电压监测器(PVD),它监视VDD/VDDA供电并与阀值VPVD比较,当VDD低于或高于阀值VPVD时产生中断,中断处理程序可以发出警告信息或将微控制器转入安全模式。PVD功能需要通过程序开启。

电压调压器:

调压器有三个操作模式:主模式(MR)、低功耗模式(LPR)和关断模式

  • 主模式(MR)用于正常的运行操作
  • 低功耗模式(LPR)用于CPU的停机模式
  • 关断模式用于CPU的待机模式:调压器的输出为高阻状态,内核电路的供电切断,调压器处于零消耗状态(但寄存器和SRAM的内容将丢失)

该调压器在复位后始终处于工作状态,在待机模式下关闭处于高阻输出。

低功耗模式:

STM32F103xC、STM32F103xD和STM32F103xE增强型产品支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。

  • 睡眠模式
    在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU。
  • 停机模式
    在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式下,停止所有内部1.8V部分的供电,PLL、HSI的RC振荡器和HSE晶体振荡器被关闭,调压器可以被置于普通模式或低功耗模式。
    可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部I/O口之一、PVD的输出、RTC闹钟或USB的唤醒信号。
  • 待机模式
    在待机模式下可以达到最低的电能消耗。内部的电压调压器被关闭,因此所有内部1.8V部分的供电被切断;PLL、HSI的RC振荡器和HSE晶体振荡器也被关闭;进入待机模式后,SRAM和寄存器的内容将消失,但后备寄存器的内容仍然保留,待机电路仍工作。
    从待机模式退出的条件是:NRST上的外部复位信号、IWDG复位、WKUP引脚上的一个上升边沿或RTC的闹钟到时。
    注: 在进入停机或待机模式时,RTC、IWDG和对应的时钟不会被停止。

2.7 DMA

灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。

DMA可以用于主要的外设:SPI、I2C、USART,通用、基本和高级控制定时器TIMx和ADC。

2.8 RTC(实时时钟)和后备寄存器

RTC和后备寄存器通过一个开关供电,在VDD有效时该开关选择VDD供电,否则由VBAT引脚供电。后备寄存器(10个16位的寄存器)可以用于在关闭VDD时,保存20个字节的用户应用数据。RTC和后备寄存器不会被系统或电源复位源复位;当从待机模式唤醒时,也不会被复位。

实时时钟具有一组连续运行的计数器,可以通过适当的软件提供日历时钟功能,还具有闹钟中断和阶段性中断功能。RTC的驱动时钟可以是一个使用外部晶体的32.768kHz的振荡器、内部低功耗RC振荡器或高速的外部时钟经128分频。内部低功耗RC振荡器的典型频率为40kHz。为补偿天然晶体的偏差,可以通过输出一个512Hz的信号对RTC的时钟进行校准。RTC具有一个32位的可编程计数器,使用比较寄存器可以进行长时间的测量。有一个20位的预分频器用于时基时钟,默认情况下时钟为32.768kHz时,它将产生一个1秒长的时间基准。

2.9 定时器和看门狗

中等容量的STM32F103xx增强型系列产品包含1个高级控制定时器、3个普通定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。

下表比较了高级控制定时器、普通定时器和基本定时器的功能:
【STM32】F103(64K/128K Flash)外设概述
高级控制定时器(TIM1):

高级控制定时器(TIM1)可以被看成是分配到6个通道的三相PWM发生器,它具有带死区插入的互补PWM输出,还可以被当成完整的通用定时器。四个独立的通道可以用于:

  • 输入捕获
  • 输出比较
  • 产生PWM(边缘或中心对齐模式)
  • 单脉冲输出
    配置为16位标准定时器时,它与TIMx定时器具有相同的功能。配置为16位PWM发生器时,它具有全调制能力(0~100%)。
    在调试模式下,计数器可以被冻结,同时PWM输出被禁止,从而切断由这些输出所控制的开关。很多功能都与标准的TIM定时器相同,内部结构也相同,

通用定时器(TIMx):

STM32F103xx增强型产品中,内置了多达3个可同步运行的标准定时器(TIM2、TIM3和TIM4)。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。

它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制。

这些定时器还能够处理增量编码器的信号,也能处理1至3个霍尔传感器的数字输出。

独立看门狗:

独立的看门狗是基于一个12位的递减计数器和一个8位的预分频器,它由一个内部独立的40kHz的RC振荡器提供时钟;因为这个RC振荡器独立于主时钟,所以它可运行于停机和待机模式。它可以被当成看门狗用于在发生问题时复位整个系统,或作为一个自由定时器为应用程序提供超时管理。通过选项字节可以配置成是软件或硬件启动看门狗。在调试模式下,计数器可以被冻结。

窗口看门狗:

窗口看门狗内有一个7位的递减计数器,并可以设置成自由运行。它可以被当成看门狗用于在发生问题时复位整个系统。它由主时钟驱动,具有早期预警中断功能;在调试模式下,计数器可以被冻结。

系统时基定时器:

这个定时器是专用于实时操作系统,也可当成一个标准的递减计数器。它具有下述特性:

  • 24位的递减计数器
  • 自动重加载功能
  • 当计数器为0时能产生一个可屏蔽系统中断
  • 可编程时钟源

2.10 I2C总线

多达2个I2C总线接口,能够工作于多主模式或从模式,支持标准和快速模式。I2C接口支持7位或10位寻址,7位从模式时支持双从地址寻址。内置了硬件CRC发生器/校验器。它们可以使用DMA操作并支持SMBus总线2.0版/PMBus总线。

2.11 通用同步/异步收发器(USART)

USART1接口通信速率可达4.5兆位/秒,其他接口的通信速率可达2.25兆位/秒。USART接口具有硬件的CTS和RTS信号管理、支持IrDA SIR ENDEC传输编解码、兼容ISO7816的智能卡并提供LIN主/从功能。

所有USART接口都可以使用DMA操作。

同步/异步的区别如下:

  • 同步收发器 (Synchronous Receiver and Transmitter)是指在通信时需要对外提供时钟信号,以保证发送方和接收方的数据同步。同步收发器的优点是传输速率高,缺点是需要额外的线路传输时钟信号,增加了硬件成本和复杂度。
  • 异步收发器 (Asynchronous Receiver and Transmitter)是指在通信时不需要对外提供时钟信号,而是通过起始位和停止位来标识每个数据帧的开始和结束。异步收发器的优点是简化了硬件设计,缺点是传输速率低,且需要额外的位来表示数据帧的边界,增加了数据冗余。

2.12 串行外设接口(SPI)

多达2个SPI接口,在从或主模式下,全双工和半双工的通信速率可达18兆位/秒。3位的预分频器可产生8种主模式频率,可配置成每帧8位或16位。硬件的CRC产生/校验支持基本的SD卡和MMC模式。

所有的SPI接口都可以使用DMA操作。

串行通信是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。

串行通信的特点是传输线少、成本低、适用于远距离通信,但是传输速率低、易受干扰。串行通信可以分为同步通信和异步通信,它们的区别在于是否需要对外提供时钟信号来保证数据同步。

2.13 控制器区域网络(CAN)

CAN接口兼容规范2.0A和2.0B(主动),位速率高达1兆位/秒。它可以接收和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧。具有3个发送邮箱和2个接收FIFO,3级14个可调节的滤波器。

2.14 通用串行总线(USB)

STM32F103xx增强型系列产品,内嵌一个兼容全速USB的设备控制器,遵循全速USB设备(12兆位/秒)标准,端点可由软件配置,具有待机/唤醒功能。USB专用的48MHz时钟由内部主PLL直接产生(时钟源必须是一个HSE晶体振荡器)。

2.15 通用输入输出接口(GPIO)

每个GPIO引脚都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设共用。除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。

在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。在APB2上的I/O脚可达18MHz的翻转速度。

STM32的GPIO有8种工作模式,分别是:

  • 模拟输入:GPIO引脚用于ADC采集电压的输入通道,信号不经过施密特触发器,直接进入ADC模块,CPU不能读取引脚状态。
  • 浮空输入:GPIO引脚的电平信号直接进入输入数据寄存器,MCU直接读取引脚电平,引脚的电平状态是不确定的,完全由外部输入决定。
  • 上拉输入:GPIO引脚内部接上拉电阻,引脚默认为高电平,如果外部输入低电平,则引脚为低电平。
  • 下拉输入:GPIO引脚内部接下拉电阻,引脚默认为低电平,如果外部输入高电平,则引脚为高电平。
  • 推挽输出:GPIO引脚可以输出强高低电平,连接数字器件,输出端由P-MOS管和N-MOS管组成的反相器驱动。
  • 开漏输出:GPIO引脚只能输出强低电平,高电平需要借助外部上拉电阻完成对外驱动,输出端只有N-MOS管工作。
  • 复用推挽输出:GPIO引脚复用为其他外设的功能引脚,输出数据由其他外设提供,可以输出强高低电平。
  • 复用开漏输出:GPIO引脚复用为其他外设的功能引脚,输出数据由其他外设提供,只能输出强低电平。

2.16 ADC(模拟/数字转换器)

STM32F103xx增强型产品内嵌2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,可以实现单次或扫描转换。在扫描模式下,自动进行在选定的一组模拟输入上的转换。

ADC接口上的其它逻辑功能包括:

  • 同步的采样和保持
  • 交叉的采样和保持
  • 单次采样
    ADC可以使用DMA操作。

模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断。

由标准定时器(TIMx)和高级控制定时器(TIM1)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。

2.17 温度传感器

温度传感器产生一个随温度线性变化的电压,转换范围在2V < VDDA < 3.6V之间。温度传感器在内部被连接到ADC12_IN16的输入通道上,用于将传感器的输出转换到数字数值。

2.18 串行单线JTAG调试口(SWJ-DP)

内嵌ARM的SWJ-DP接口,这是一个结合了JTAG和串行单线调试的接口,可以实现串行单线调试接口或JTAG接口的连接。

JTAG的TMS和TCK信号分别与SWDIO和SWCLK共用引脚,TMS脚上的一个特殊的信号序列用于在JTAG-DP和SW-DP间切换。

三、引脚定义

以stm32f103c8t6为例:

【STM32】F103(64K/128K Flash)外设概述

【STM32】F103(64K/128K Flash)外设概述


~ 文章来源地址https://www.toymoban.com/news/detail-514566.html

到了这里,关于【STM32】F103(64K/128K Flash)外设概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32开发(二十三)STM32F103 高级外设 —— TFT_LCD屏框架以及填充颜色 详解

    👈《上一篇》  🏡《主目录》  👉《下一篇》

    2024年02月06日
    浏览(42)
  • STM32F103单片机通过SPI全双工通信协议与W25Q64(FLASH)进行通信【串行同步通信(数据线与时钟线配合),(一主多从模式)】附相关驱动代码详解

    1.W25Qxx系列是一种低成本、小型化、使用简单的 非易失性存储器 ,常应用于数据存储、字库存储、固件程序存储等场景 2.存储介质: Nor Flash(闪存) 3.时钟频率:80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI) 4.存储容量(24位地址): W25Q40: 4Mbit / 512KByte W25Q80: 8Mbit / 1MByte W25Q16: 16

    2024年04月13日
    浏览(59)
  • STM32F103C8T6(HAL库函数 - 内部Flash操作)

    STM32F103C8T6 内部Flash 为 64KB,本次将对他多余空间进行读写。 数据手册下载 STM32F103x8/STM32F103xB 数据手册 包含Flash Memory Page分布 STM32F设备命名 设备容量类型 中容量类型 内部空间介绍 Flash Memory 从 0x0800 0000 ~ 0x0801 FFFF 页分布1K每页, STM32F103C8T6 只有64KByte, 那就是64页 使用 controll

    2024年01月21日
    浏览(60)
  • 【STM32CubeIDE】STM32F103硬件SPI驱动1.8寸TFT LCD128X160 ST7735S屏幕

    ✨虽然STM32CubeIDE也是基于HAL库,但是还是不能直接转Keil MDK工程,本驱动案例从GitHub下载来的,原始工程使用的是较老版本的STM32CubeIDE配置的,没法在继续在新版本上程序配置,工程只是做了初始化配置。程序并不能直接被点亮,重新配置了lcd初始化函数以及复位函数后,才

    2024年02月12日
    浏览(37)
  • STM32F103C8用内部Flash做一个优盘(USB+MSC+FATFS)

    STM32F103C8用内部Flash做一个优盘(USB+MSC+FATFS),轻松实现APP升级、数据存储。 直接使用STM32CubeMX生成基本的工程,省得我们去调底层。 时钟配置为外部8MHz晶振,这个需要根据自己开发板的晶振选择。  启用SWD下载和滴答定时器  启用USB  启用FATFS,MAX_SS和MIN_SS设置为1024。  配

    2024年02月14日
    浏览(44)
  • 【正点原子STM32连载】 第四十五章 FLASH模拟EEPROM实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

    STM32本身没有自带EEPROM,但是STM32具有IAP(在应用编程)功能,所以我们可以把它的FLASH当成EEPROM来使用。本章,我们将利用STM32内部的FLASH来实现第三十六章实验类似的效果,不过这次我们是将数据直接存放在STM32内部,而不是存放在NOR FLASH。 本章分为如下几个小节: 45.1 ST

    2024年02月08日
    浏览(59)
  • STM32F103学习笔记 | 4.STM32F103芯片介绍

    STM32F1入门学习将使用STM32F103C8T6开发板最小系统板。小R为什么选择它来入门呢?咳咳~首先,ST官方提供强大且易用的标准库函数,使得开发过程方便快捷;其次,网上的教程资料多也十分详细。所以呢,它对高校学生和广大初学者入门都是一个非常好的选择。 开发板的实物图

    2024年04月25日
    浏览(42)
  • STM32F103RCT6 介绍

    ==================================================================================== 2、 LQFP 封装结构 3、 LQFP封装结构 4、芯片资源介绍(很久以前,面试的时候有被别人问到过,还要介绍32 的时钟系统) 4.1 内核 ① 32-bits ARM Cortex-M3 CPU ② 72 Mhz 主频 ③ 256Kb to 512Kb flash(RCT6 是256Kb) 4.2 时钟系统

    2024年02月13日
    浏览(50)
  • stm32f103最小系统板详细介绍

    一.什么是单片机最小系统         常见的单片机最小系统为单片机能独立运行程序及控制外围电路的最简单电路,主要由单片机、晶振电路、复位电路三部分构成。Stm32f103c8t6也不例外,构成最小的运行电路也需要以上三部分。 Stm32f103最小系统板原理图如下: 二.最小系统

    2024年02月03日
    浏览(39)
  • 解决keil-5中stm32f103系列使用ST-Link下载程序时不能连接的问题。“flash download failed ”

    出现的问题如下: 解决方法如下: 因为新版的Keil 加入了下载器的校验机制,所以我们需要替换掉新版编译器下的原文件 需要这个文件的评论下方留言记得留言哦。 一、解压后得到 STlink 文件夹,整个文件夹替换到 软件安装目录下 /ARM 处即可 二、更新下载器固件(更新一次

    2024年02月12日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包