精华内容
下载资源
问答
  • STM32F103复位系统

    千次阅读 2020-02-22 21:20:31
          复位指将STM32系统各功能寄存器及I/O口设为最初状态(备份区域不被复位)。 复位形式       共有三种复位形式:1.电源复位 2.系统复位 3.备份区域复位 电源复位       当引脚NRST被置于低电平的时候...

    复位的作用:

          复位指将STM32系统各功能寄存器及I/O口设为最初状态(备份区域不被复位)。

    复位形式

          共有三种复位形式:1.电源复位 2.系统复位 3.备份区域复位

    电源复位

          当引脚NRST被置于低电平的时候,理论上需要要求时延高于20μs,电源才能有效复位,即系统的复位地址被固定在0x00000004处,从此地址开始。
          电源复位发生在掉电/上电的时候或者发生在从待机模式退出

    系统复位

          当发生系统复位的时候我们可以通过观测时钟控制器RCC_CSR寄存器的标志位来识别复位的来源(除了备份区域和此寄存器其余都被设为初始值)。
          一般情况下通过:1.NRST引脚上的低电平(外部复位)。
    .                          2.看门狗计数终止复位(窗口WWDG或独立IWDG)
    .                          3.软件复位(SW复位)
    .                          4.低功耗管理复位

    备份区域复位

         此复位只影响备份区域,一般由寄存器RCC_BDCR中的BDRST位还有就是VDD和VBAT两者均掉电之后上电进行备份区域的复位。

    展开全文
  • STM32F103C8T6最小系统

    万次阅读 多人点赞 2019-07-09 23:25:17
    单片机最小系统一般有晶振电路、电源电路、复位电路以及调试电路组成。本文以STM32F103C8T6为例,介绍最小电路的设计和要注意的问题。

    各位同学,看完觉得好就点个赞,点个收藏,再来一波关注。白嫖不利于开源社区的发展,我这浏览数据都12000+了,点赞基本没有,收藏倒是快接近100了。开源本来就是吃力不讨好的事情,更新和创作的动力来源于社区有效的互动。
    在这里插入图片描述

    单片机最小系统一般有晶振电路、电源电路、复位电路以及调试电路组成

    1.电源电路

    主要有两部分组成:

    • 供电电路

    可以使用普通的USB接口电路,5V电源输出
    供电电路

    • 降压电路
      USB的5V输入,然后输出为3.3V
      在这里插入图片描述
      这里使用两种不同的电容。
    • 输入滤波电容的作用:
      输入电压,当接入电源,其幅值是从零起始的,波动非常大,加入足够容量的电容进行滤波后,因电容的充放电效应,该脉动直流变成纹波不大的直流电,这是输入滤波的作用。
    • 输出滤波电容的作用:
      稳压电路的工作过程需要从输出采样,然后根据其反馈值调节输出以达稳压的目的。如果此时没有输出滤波电容,只要因负载变化带来的电压波动频率恰好与稳压电路的调节速率差不多就会产生振荡效应,导致输出失控,所以稳压输出也必须加滤波电容,而且增加滤波电容也可以进一步增加稳压输出的稳定性
    • 大电容和小电容并联的作用:
      至于与大容量电解电容并联的小电容,其作用在于旁路频率较高的波动电压,因为铝电解电容的制造工艺导致其具有较大的ESL(等效电感),无法滤除高频成份,故需加个小电容。

    2.晶振电路

    晶振电路用来给芯片提供时钟信号,原理图如下:
    在这里插入图片描述
    需要注意的是:

    • 画板时晶振尽量离芯片近一点
    • 晶振底部尽量不要穿过其他支路,防止信号串扰
    • 不同型号的晶振可能需要不同的电路设计,根据自己使用的晶振型号设计,例如使用村田的CSTCE系列晶振,可以设计成如下电路:
      CSTCE8M系列晶振电路
    • 晶振的选择要根据数据手册来选,本芯片4-16M可选
      数据手册中对晶振的选择
      注意:上图使用了F102芯片手册,在外接晶振方面F103上是一样的

    3.复位电路

    复位电路如下:
    在这里插入图片描述
    stm32有三种复位方式:电源复位、系统复位和后备域复位

    电源复位时,当NRST引脚被拉低,产生外部复位,并产生复位脉冲,从而使系统复位。

    4.去耦电容

    主要用来滤除杂波,保持引脚电压的稳定。这些电容也尽量离芯片相关引脚近一点。分布在芯片四周即可。
    在这里插入图片描述

    5.调试下载电路

    • BOOT选择
    启动方式 BOOT0 BOOT1
    从主闪存存储器启动 0 x
    从系统存储器启动 1 0
    从内置SRAM启动 1 1

    BOOT选择

    • 调试电路(SW接线方式)
      PA13对应SWD,PA14对应SWC
      下载调试电路
      对应仿真器连接如下图:

    SW接线

    6.其他外围电路

    • 电源指示灯
      电源指示
    • 测试LED灯
      测试电路
      注意:如果要使用PC13,PC14和PC15则VBAT需要接3.3V
    • 这是因为VBAT引脚和芯片的其他VSS和VDD引脚功能是一致的,都是用来给相邻片区引脚供电

    在这里插入图片描述

    • 外围接口
      在这里插入图片描述
      注意:排序时,围绕stm32芯片一个方向顺序排列网络标号,依次排列外接IO,方便PCB排版.

    7.芯片STM32F103C8T6

    STM32F103C8T6

    • 封装是LQFP48,注意BOOT引脚接10K电阻

    STM32F103C8T6

    8.PCB布板

    • 正面
      布板
    • 反面
      在这里插入图片描述
      注意布板时提到的几个问题即可

    9.成品

    成品

    • 由于画的是HC-49U的晶振封装,但是不够了,用了个TC-38来凑数,也是8M,效果还不错。

    10.调试结果

    调试成功

    11.LED灯测试结果

    测试成功

    12.原理图说明

    • 楼主提供F103C8T6的原理图,各位可以参考图片版本

    • 照着图片画一版,增强记忆

    • 不提供PCB的原因是:大家使用的元器件库是不一样的,最好根据自己实验室现有器件规格来配置相应的元器件,并设计好PCB。

    • 另外需要说明一点:下载时的积分我设置不了,这是系统自动设置的。虽然,我也想把积分调低一点。

    • 好像能改。。。改成5积分了。
      滑稽

    展开全文
  • STM32F103入门 | 2.STM32F103xx内部资源介绍

    万次阅读 多人点赞 2018-12-30 10:44:06
    2.1STM32F103xx增强型LQFP48引脚分布 2.2 STM32F103xx概述 2.2.1ARM®的Cortex™-M3核心并内嵌闪存和SRAM ARM的Cortex™-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减...

    2.1 STM32F103xx增强型LQFP48引脚分布

     

    2.2 STM32F103xx概述

     

    2.2.1 ARM®的Cortex™-M3核心并内嵌闪存和SRAM

    ARM的Cortex™-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。

    ARM的Cortex™-M3是32位的RISC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上发挥了ARM内核的高性能。

     

    2.2.2 内置闪存存储器

    64K或128K字节的内置闪存存储器,用于存放程序和数据。小R使用的开发板内置闪存存储器为64K。

     

    2.2.3 CRC(循环冗余校验)计算单元

    CRC(循环冗余校验)计算单元使用一个固定的多项式发生器,从一个32位的数据字产生一个CRC码。在众多的应用中,基于CRC的技术被用于验证数据传输或存储的一致性。

     

    2.2.4 内置SRAM

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

     

    2.2.5 嵌套的向量式中断控制器(NVIC)

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

    ● 紧耦合的NVIC能够达到低延迟的中断响应处理

    ● 中断向量入口地址直接进入内核

    ● 紧耦合的NVIC接口

    ● 允许中断的早期处理

    ● 处理晚到的较高优先级中断

    ● 支持中断尾部链接功能

    ● 自动保存处理器状态

    ● 中断返回时自动恢复,无需额外指令开销

    该模块以最小的中断延迟提供灵活的中断管理功能。

     

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

    外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求。每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿),并能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。

    EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。多达80个通用I/O口连接到16个外部中断线。

     

    2.2.7 时钟和启动

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

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

     

    2.2.8 自举模式

    在启动时,通过自举引脚可以选择三种自举模式中的一种:

    ● 从程序闪存存储器自举

    ● 从系统存储器自举

    ● 从内部SRAM自举

    自举加载程序(Bootloader)存放于系统存储器中,可以通过USART1对闪存重新编程。

     

    2.2.9 供电方案

    ● 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振荡器和后备寄存器供电。

     

    2.2.10 供电监控器

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

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

     

    2.2.11 电压调压器

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

    ● 主模式(MR)用于正常的运行操作

    ● 低功耗模式(LPR)用于CPU的停机模式

    ● 关断模式用于CPU的待机模式:调压器的输出为高阻状态。

     

    2.2.12 低功耗模式

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

     

    2.2.13 DMA

    灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。

    每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。

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

     

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

     

    2.2.15 定时器和看门狗

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

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

    ● 输入捕获

    ● 输出比较

    ● 产生PWM(边缘或中心对齐模式)

    ● 单脉冲输出

    配置为16位标准定时器时,它与TIMx定时器具有相同的功能。配置为16位PWM发生器时,它具有全调制能力(0~100%)。

    通用定时器(TIMx)

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

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

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

     

    2.2.16 IIC总线

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

     

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

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

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

     

    2.2.18 串行外设接口(SPI)

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

     

    2.2.19 控制器区域网络(CAN)

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

     

    2.2.20 通用串行总线(USB)

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

     

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

    每个GPIO引脚都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设共用。

    除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。

    在APB2上的I/O脚可达18MHz的翻转速度。

     

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

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

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

    ● 同步的采样和保持

    ● 交叉的采样和保持

    ● 单次采样

    ADC可以使用DMA操作。

    模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断。由标准定时器(TIMx)和高级控制定时器(TIM1)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。

     

    2.2.23 温度传感器

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

     

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

    内嵌ARM的SWJ-DP接口,这是一个结合了JTAG和串行单线调试的接口,可以实现串行单线调试接口或JTAG接口的连接。JTAG的TMS和TCK信号分别与SWDIO和SWCLK共用引脚,TMS脚上的一个特殊的信号序列用于在JTAG-DP和SW-DP间切换。


    2.3 STM32F103xx增强型模块框图

     

     

    2.4 STM32F103xx时钟树

     

    欢迎关注微信公众号『OpenSSR』

    展开全文
  • GD32F103快速替换STM32F103

    万次阅读 多人点赞 2020-10-21 17:59:49
    注:本文档仅针对GD32F103系列替代STM32F103系列 一、相同点 1)、外围引脚PIN TO PIN兼容,每个引脚上的复用功能也完全相同。 2)、芯片内部寄存器、外部IP寄存器地址和逻辑地址完全相同,但是有些寄存器默认值不同...

    注:本文档仅针对GD32F103系列替代STM32F103系列
    版权:威尔健科技有限公司
    主营业务:GD MCU代理与方案开发,中科微定位模块或芯片,美格通讯模块等。
    联系方式:18816824119(微信同号)
    本人:GD技术支持

    一、相同点**
    1)、外围引脚PIN TO PIN兼容,每个引脚上的复用功能也完全相同。
    2)、芯片内部寄存器、外部IP寄存器地址和逻辑地址完全相同,但是有些寄存器默认值不同,有些外设模块的设计时序上和STM32有差异,这点差异主要体现在软件上修改,详情见下文。
    3)、编译工具:完全相同例如:KEIL 、IAR
    4)、型号命名方式完全相同,所以替代只需找尾缀相同的型号即可,例如:STM32F103C8T6 与 GD32F103C8T6。
    5)、仿真工具:JLINK STLink Ulink GDLINK

    二、外围硬件区别
    在这里插入图片描述
    三、硬件替换需要注意的地方
    从上面的介绍中,我们可以看出,GD32F103系列和STM32F103系列是兼容的,但也需要一些注意的地方。
    1)、BOOT0必须接10K下拉或接GND,ST可悬空,这点很重要。
    2)、RC复位电路必须要有,否则MCU可能不能正常工作,ST的有时候可以不要。
    3)、有时候发现用仿真器连接不上。因为GD的swd接口驱动能力比ST弱,可以有如下几种方式解决:
    a、线尽可能短一些;
    b、降低SWD通讯速率;
    c、SWDIO接10k上拉,SWCLK接10k下拉。
    4)、使用电池供电等,注意GD的工作电压,例如跌落到2.0V~2.6V区间,ST还能工作,GD可能无法启动或工作异常。

    四、使用ST标准库开发需要修改的地方
    1)、GD对时序要求严格,配置外设需要先打开时钟,在进行外设配置,否则可能导致外设无法配置成功;ST的可以先配置在开时钟。

    2)、修改外部晶振起振超时时间,不用外部晶振可跳过这步。
    原因:GD与ST的启动时间存在差异,为了让GD MCU更准确复位。
    修改:
    将宏定义:
    #define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)
    修改为:
    #define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)

    3)、GD32F10X flash取值零等待,而ST需要2个等待周期,因此,一些精确延时或者模拟IIC或SPI的代码可能需要修改。
    原因:GD32采用专利技术提高了相同工作频率下的代码执行速度。
    修改:如果使用for或while循环做精确定时的,定时会由于代码执行速度加快而使循环的时间变短,因此需要仿真重新计算设计延时。使用Timer定时器无影响。

    4)、在代码中设置读保护,如果使用外部工具读保护比如JFLASH或脱机烧录器设置,可跳过此步骤。
    在写完KEY序列后,需要读该位确认key已生效,修改如下:
    在这里插入图片描述
    总共需要修改如下四个函数:

    FLASH_Status FLASH_EraseOptionBytes(void);
    FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data);
    uint32_t FLASH_GetWriteProtectionOptionByte(void);
    FlagStatus FLASH_GetReadOutProtectionStatus(void);
    

    5)、GD与ST在flash的Erase和Program时间上有差异,修改如下:
    在这里插入图片描述
    6)、需求flash大于256K注意,小于256K可以忽略这项。
    与ST不同,GD的flash存在分区的概念,前256K,CPU执行指令零等待,称code区,此范围外称为dataZ区。两者在擦写操作上没有区别,但在读操作时间上存在较大差别,code区代码取值零等待,data区执行代码有较大延迟,代码执行效率比code区慢一个数量级,因此data区通常不建议运行对实时性要求高的代码,为解决这个问题,可以使用分散加载的方法,比如把初始化代码,图片代码等放到data区。

    7)、ADC采集
    a> ADC通道要配置成模拟输入,芯片默认是浮空输入,如果不配成模拟输入,ST的可以正常采集,GD不行
    b> ADC时钟没有手动分频最大运行频率14Mhz以内,ST可以正常采集,GD不行。
    c> ADC使能后需要加不少于20us延时。
    d> 采样精度不如STM32f103,GD32f103存在这个问题,如果对ADC精度要求不高可以选用,可以选用PIN TO PIN 兼容F103系列的GD32E103和GD32F303系列解决。

    总结:至此,经过以上修改,在不使用USB和网络能复杂协议的代码,就可以使用ST的代码操作了。

    附加:
    1、修改或为了区分GD32和STM32的代码,可以使用如下代码:
    在这里插入图片描述
    2、GD的主频支持108MHz,有时候需要提供主频,提供一个96MHZ的参考:

    static void SetSysClockTo96(void)
    {
      __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
      
    	RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOC,ENABLE);
    	RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOC,!ENABLE);
    	
      /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/    
      /* Enable HSE */    
      RCC->CR |= ((uint32_t)RCC_CR_HSEON);
     
      /* Wait till HSE is ready and if Time out is reached exit */
      do
      {
        HSEStatus = RCC->CR & RCC_CR_HSERDY;
        StartUpCounter++;  
      } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
    for(StartUpCounter=0;StartUpCounter<0x1fff;StartUpCounter++);
      if ((RCC->CR & RCC_CR_HSERDY) != RESET)
      {
        HSEStatus = (uint32_t)0x01;
      }
      else
      {
        HSEStatus = (uint32_t)0x00;
      }  
    
      if (HSEStatus == (uint32_t)0x01)
      {
        /* Enable Prefetch Buffer */
        FLASH->ACR |= FLASH_ACR_PRFTBE;
    
        /* Flash 2 wait state */
        FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
        FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;    
    
     
        /* HCLK = SYSCLK */
        RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
          
        /* PCLK2 = HCLK */
        RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
        
        /* PCLK1 = HCLK */
        RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;
    
    #ifdef STM32F10X_CL
        /* Configure PLLs ------------------------------------------------------*/
        /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
        /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */
            
        RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL |
                                  RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC);
        RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 |
                                 RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);
      
        /* Enable PLL2 */
        RCC->CR |= RCC_CR_PLL2ON;
        /* Wait till PLL2 is ready */
        while((RCC->CR & RCC_CR_PLL2RDY) == 0)
        {
        }
        
       
        /* PLL configuration: PLLCLK = PREDIV1 * 12 = 96 MHz */ 
        RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);
        RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | 
                                RCC_CFGR_PLLMULL12); 
    #else    
    #if 0
        /*  PLL configuration: PLLCLK = HSE * 12 = 96 MHz */
        RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
                                            RCC_CFGR_PLLMULL));
    																				for(StartUpCounter=0;StartUpCounter<0x1fff;StartUpCounter++);
        RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL12);
    #else
    //	RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
    //                                        RCC_CFGR_PLLMULL));
    																				
    	//RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE|(1<<17));
    	//RCC->CFGR &= ~(RCC_CFGR_PLLMULL);
    	//RCC->CFGR |= (uint32_t)(1<<27u);
    	RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
                                            RCC_CFGR_PLLMULL));
        RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | (1<<27)|(7<<18)|(1<<17));
    #endif
    #endif /* STM32F10X_CL */
    
        /* Enable PLL */
        RCC->CR |= RCC_CR_PLLON;
    
        /* Wait till PLL is ready */
        while((RCC->CR & RCC_CR_PLLRDY) == 0)
        {
        }
        for(StartUpCounter=0;StartUpCounter<0x1fff;StartUpCounter++);
        /* Select PLL as system clock source */
        RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
        RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    
    		for(StartUpCounter=0;StartUpCounter<0x200;StartUpCounter++);
    		for(StartUpCounter=0;StartUpCounter<0x1fff;StartUpCounter++);
        /* Wait till PLL is used as system clock source */
        while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
        {
        }
      }
      else
      { /* If HSE fails to start-up, the application will have wrong clock 
             configuration. User can add here some code to deal with this error */
      }
    }
    
    展开全文
  • 摘 要: 本文介绍了STM32F103核心单元电路DE 设计注意事项和规范,考虑在不同产品类型设计的时候避免产生设计错误。 1.规范满足的技术指标 温度范围:-40~85℃。 满足功能:单片机最小系统运行,AD检测检测准确...
  • stm32F103R6之复位

    2020-09-17 18:22:03
    Stm32F103支持三种复位形式,分别是:系统复位、电源复位、备份域复位。 系统复位 除了时钟控制寄存器的RCC_CSR寄存器中的复位标志位和备份域中的寄存器外,系统复位将所有寄存器置于它们的复位状态。 当发生以下...
  • STM32F103电路引脚功能定义及部分参考电路设计

    千次阅读 多人点赞 2020-03-31 10:58:46
    STM32F103各引脚(LQFP64)功能定义 NOTE: 1.供电方案 ●VDD = 2.0至3.6 V:用于I / O的外部电源和内部稳压器,通过VDD引脚从外部提供。 ●VSSA,VDDA = 2.0至3.6 V:用于ADC,DAC,复位模块,RC和PLL(当ADC或...
  • STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部RC时钟,所以并不是准确的40Khz,而是在30~60Khz之间的一个可变化的时钟,只是我们在...
  • 2018年7月7日 硬件学习笔记(5) zwx2415 q:1411593413 e:zwx2415@qq.com复位电路的作用是为了是系统恢复到初始状态的,单片机的复位方式也是存在好几种的:上电复位,系统复位,备份区域复位上电复位:其产生的...
  • STM32F103微型拓展板

    2021-07-15 13:24:31
    STM32F103C8T6最小版,尺寸1.5cm*1.5cm,打样后裁开即可组合成一个微型拓展版,包含复位电路及电源指示灯电路
  • STM32F103ZET6原理图

    2018-08-17 12:51:33
    STM32F103ZET6原理图 STM32F103ZET6原理图 STM32F103ZET6原理图
  • stm32学习(二)STM32F103ZET6内部资源讲解

    万次阅读 多人点赞 2019-09-25 20:22:45
    大家好,今天和大家分享一下STM32F103ZET6的版载资源,希望和大家一起学习,一起进步。当然本人目前是一个对库函数版本的初学者,如果谈论不妥的地方,希望大家能够及时提出,批评指正,本人将不胜感激。非常感谢! ...
  • stm32复位电路问题

    千次阅读 2020-02-19 11:42:53
    通过阅读stm32 pdf,其rst引脚内部是有上拉电阻的。只有在认为上拉电流不足情况下才有必要外接上拉电阻。 因此,rst电路仅保留一个104电容是可行的。我设计的电路中删掉10k上拉电阻后,芯片也可以正常启动、烧写...
  • STM32F103C8T6最小系统设计

    千次阅读 多人点赞 2021-01-06 15:52:35
    包括了复位电路、晶振电路、电源排针等单片机工作必要的外围电路,且把常用的引脚全部引出,方便研发人员将本方案嵌入到开发中。本最小系统兼容STM32F103C8T6、STM32F103CBT6等LQFP-48封装的单片机芯片。 ...
  • STM32F103RBT6和STM32L152RBT6原理图

    千次阅读 2016-08-16 21:54:15
    STM32F103RBT6、STM32F103RCT6和STM32L152RBT6原理图 实物图 DXP格式下载
  • 说到复位,我们都不会陌生,系统基本都有一个复位按键。复位的种类有很多:上电复位、掉电复位、复位引脚复位、看门狗复位、软件复位等。本文探讨的就是在stm32复位电路如何设计。
  • 这是用我用AD绘制的STM32F103ZET6的最小系统,包含STM32F103ZET6芯片模块(引出所有I/O口),电源模块(5v转3.3v,USB或5v电源适配器供电),USB转TTL串口模块,一键下载电路,仿真器模块,复位等基本模块。
  • STM32复位电路

    万次阅读 2019-03-06 19:05:14
    ** STM32复位电路 **
  • V1.0 STM32F103系列芯片的程序下载方法 以技新的STM32F103VE核心板为例 1串口下载方式1 集成一键下载电路 优点 不需要STLink调试器不需板载20针JTAG接口不需要手动更改BOOT0和复位脚的电平状态 缺点 需板载一键下载...
  • stm32f103zet6引脚说明

    万次阅读 2019-02-20 03:50:00
    stm32f103zet6是一种嵌入式-微控制器的集成电路(IC),是由ST公司开发的STM32F1系列的其中一种,芯体尺寸是32位,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K。  stm32f103zet...
  • STM32F103C8T6核心板资料STM32F103C8T6核心板资料包括测试程序技术手册和硬件资料 包括原理图 和PCB图
  • 平时做项目经常用到STM32的最小系统核心板,打算自己画一个,为此在“马云家”买了一份原理图和PCB,可那布线实在不忍看。还是自己画吧!!!这板子包括:电源指示灯、USB...STM32F103ZET6最小系统核心板PCB截图如下:
  • STM32F103CBT6原理图

    2013-10-18 17:10:31
    强烈推荐STM32F103CBT6开发板原理图,赶紧下载参考吧
  • STM32F103最小系统图例

    千次阅读 2021-01-08 23:37:15
    一、STM32F103最小系统1. 最小系统的构成2.连接图3.电源电路4.复位电路5.时钟电路6.程序下载电路7.启动配置电路 1. 最小系统的构成 单片机芯片、供电电路、时钟电路、复位电路、程序下载电路、启动配置电路。 2.连接...
  • GD32E103/F303系列替换STM32F103

    千次阅读 多人点赞 2020-11-19 10:21:46
    注:本文档仅针对GD32E103/F303系列替代STM32F103系列 说明:GD32E103/GD32F10x/GD32F30x都是和STM32F10x系列是完全PIN TO PIN兼容的,因此GD32F30x系列不是完全和STM32F30X系列兼容的。 GD32F103是GD早期的产品,...
  • STM32F103C8T6最小系统板电路设计 一。电源部分 设计了一个XH插座,以便使用3.7V锂电池供电,接入电压不允许超过6V。 二。指示灯部分 电源指示灯可以通过一个短路帽控制亮灭,以达到节电的目的。 三。复位电路 ...
  • STM32F103C8T6使用DHT11采集温湿度通过串口显示

    万次阅读 多人点赞 2019-11-30 21:35:15
    STM32F103C8T6使用DHT11采集温湿度 平台:Windows 7 编译环境:MDK5.23 涉及硬件:STM32F103C8T6、DHT11模块 前些天在某宝买了一块STM32F103C8T6核心板,想着学习一下,花了几天时间看文档,对这块板子...
  • TM32F103C8T6的最小系统版,板载MicroUSB接口、复位按键、SWD。全GPIO引出

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,711
精华内容 684
关键字:

stm32f103复位电路