STM32F103RCT6:

STM32F103RCT6是一种嵌入式-微控制器的集成电路(IC),32位 Cortex-M3内核处理器,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K,封装LQFP64。

STM32单片机命名规则:

STM32单片机最小系统:

所谓单片机最小系统,就是让单片机能够正常运行,最少且必须的器件所组成的系统。

单片机最小系统上电之后,单片机可以正常复位,下载程序,除此之外没有其他任何功能。

在最小系统保证正确的基础上,可以依次添加其他功能模块或器件,使之单片机具有实际功能。

STM32单片机最小系统包括一个复位电路和一个时钟电路。如下图1所示。

图中复位电路使用的是上电复位电路,STM32单片机NRST引脚输入低电平,则发生复位。

图1 STM32F103单片机最小系统

电源引脚:

VDD是单片机的数字电源正极,VSS是数字电源负极,共有5个VDD引脚,5个VSS引脚。VDDA是单片机的模拟电源正极,负责给内部的ADC、DAC模块供电,VSSA是模拟电源负极。

还有一个电源引脚,就是VBAT,BAT就是Battery(电池),这个引脚用来连接电池的正极的。STM32带RTC功能(实时时钟),所以有VBAT引脚。

原理图上预留了一个CR1220纽扣锂电池,当主电源供电存在的情况下,由系统中的VCC3.3给VBAT供电;

当主电源断电之后,由CR1220纽扣电池给STM32自带的RTC模块供电,从而能够保证实时时钟模块在主电源掉电的情况下还能够正常工作。

但是这样设计的话,这里有一个矛盾需要解决。如果VBAT引脚直接与VCC3.3和CR1220连接的话,会存在下面问题:

1、当电池电压高于3.3V,电池就会输出电流到AMS1117,使得芯片发烫,还会很快消耗电池电量。

2、如果电池电压低于3.3V,AMS1117产生的3.3V,就会给电池充电,而这种CR1220电池是不能够充电的。

为了解决上面问题,我们将VBAT引脚的供电电路设计如下:

D1防止电池的电流流向AMS1117,D2防止AMS1117产生的3.3V流向电池。

之所以这样设计,用的就是“二极管的单向导通性”。

正常产品设计的时候,每个电源引脚旁边,最好放置一个0.1uF的电容滤波,用来滤除电源的噪声杂波。

复位引脚NRST

复位就是重启。STM32复位引脚是低电平复位,正常工作状态,复位引脚是高电平。

单片机的置位和复位,其目的都是为了把电路初始化到一个确定状态。复位时在单片机内部单片机是将存储设备和一些寄存器装入生产厂商预设的一个值。一般来说,单片机复位电路的作用是把一个状态机初始化到一个空的状态。

单片机实现上电复位的原理:

在复位引脚NRST上外接电容和电阻。

当复位电平(低电平)持续两个机器周期以上时复位有效,系统上电后由于电容的充电,会保持一段时间的低电平来使单片机复位。

刚上电,电容两端电压为0,即低电平复位,RC电路有个充电曲线(即电容两端电压变化曲线),单片机识别外部电平有一个连接电压,保证rc电路电容电压充到单片机临界电压的时间在两个机器周期以上就能满足单片机复位条件;

当3.3V电源加到VCC3.3时,RC电路导通,NRST与地的电位差为电容与地的电位差。NRST与地的电位差只有电容充电完毕后才会达到3.3V,所以在电容的充电过程中,给芯片引脚的信号都是低电平。根据RC电路充电方程式V(t)=U+A*e-(t/RC),只要合理的选择好R跟C的值就可以保证充电时间大于芯片复位所要求的时间。我们一般R选择10K电阻,C选择0.1uF电容。

晶振引脚

STM32有两组晶振,一组用来给单片机提供主时钟(5:OSC_IN,6:OSC_OUT),主时钟晶振使用8MHz的晶振(为了程序内部倍频方便,一般选用8MHz的晶振)。

一组用来给RTC提供时钟(3:OSC32_IN,4:OSC32_OUT),RTC时钟晶振,需要连接32.768K的晶振,关于为什么要用32.768KHz,大家可以去百度了解一下哈。

实际应用中,如果不用RTC功能的话,RTC的晶振不必连接。

STM32的时钟电路又分为内时钟和外时钟两种模式。

外部时钟是在OSC_IN和OSC_OUT之间加上一个晶振,单片机内部振荡器便能产生自激震荡,产生时钟信号,在晶振的两侧加上20~30pF的瓷片电容起到了微调时钟频率的作用,让频率更加稳定。

内部时钟是STM32内部有时钟产生,所以如果不用外部晶振的话,也可以不用连接,内部时钟是用芯片内部振荡电路,精度不高,温飘也较大,不需要外部振荡器件。

BOOT引脚

STM32有两个BOOT引脚,分别是BOOT0和BOOT1,这两个引脚的高低电平,决定了单片机的启动方式和运行方式。

第一种(BOOT1=X,BOOT0=0)启动方式是最常用的用户FLASH启动。默认启动方式

第二种(BOOT1=0,BOOT0=1)启动方式是系统存储器启动方式。STM32中自带的BootLoader( 就是通常说的ISP程序)就是在这种启动方式中,如果出现程序硬件错误的话可以切换BOOT0=1到该模式下重新烧写Flash即可恢复正常。 BootLoader所在区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。

第三种(BOOT1=1,BOOT0=1)启动方式是STM32内嵌的SRAM启动。该模式用于调试。

一般我都是将BOOT0和BOOT1接地。

上面就是最小系统的全部内容,当然只有上面的部分还不行,一般最小系统还包括下面几部分:

电源电路:

因为STM32单片机一般都是3.3V供电,而生活中一般常见的都是5V电源(电脑的USB口,手机充电器,移动电源...),所以一般使用AMS1117-3.3V 稳压电源芯片将5V降压为3.3V,该芯片的封装一般为SOT223。

下载电路:

当然除了上面几部分以为,还需要一个下载电路,STM32的下载方式有如下几种:

(1)串口下载:使用串口下载需要单片机内有相应的程序的支持,而系统存储器中就放了这么一段程序,由ST 在生产线上写入,用于通过可用的串行接口对闪存存储器进行重新编程。(在系统存储器启动模式下下载,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。程序烧录在FLASH)。

注意:使用此种方式需要BOOT0=1,即需要有外部电路支持才可以实现串口下载。

(2)JLINK或者STLINK下载

一般我们使用JTAG或者SWD模式下载程序。

推荐使用SWD模式下载,SWD模式只需要三个引脚(GND、SWCLK、SWDIO)即可实现程序的下载功能。


从六月份开始,每个月会制作一个毕业设计难度的DIY作品, 前期作品以模块组合的形式搭建,降低门槛,方便大家一起跟着做; DIY过程只在微信公众号中分享,大家没关注的,赶紧关注哈。

每个月时间大致安排:

  • 上个月25号,公布DIY作品名称;
  • 每月1日公布作品功能点及所需要的功能模块链接;
  • 每月10日前绘制完模块配合的线路板;
  • 每月15日之前硬件搭建完毕,之后按模块撰写代码,调试,随时公众号更新进展;
  • 每月月底开源整个作品的源码和PCB工程文件。

题目选取原则:

  • 公众号每个月20日发起投票,25号截止,票数最多的作为下个月的DIY内容;
  • 投票的备选项大家可以后台留言给我,我会选出五种留言最多的作为选项;
  • 每个月的DIY内容尽量与上个月分享的文章有一定的相关度,起到温故知新的作用。

有什么想法或者建议,后台留言给我哈。


喜欢请关注微信公众号:嵌入式从0到1

若觉得本次分享的文章对您有帮助,随手点赞并转发分享,也是对我的支持。

hc05与单片机连接图_STM32单片机最小系统详解相关推荐

  1. STM32最小系统详解

    STM32最小系统详解 1. 电源电路 2. 晶振电路 3. 复位电路 4. 下载电路(串口下载) 本文章将以普中的STM32F103系列的开发板为载体,任何一款STM32开发板都是在其最小系统基础上 ...

  2. hc05与单片机连接图_单片机开发一个数据采集系统,一看就是高手

    1.单片机为核心的嵌入式系统 单片机体积小,重量轻,具有很强的灵活性而且价格便宜,具有逻辑判断,定时计数等多种功能,广泛应用于仪器仪表,家用电器,医用设备的智能化管理和过程控制等领域.以单片机为核心的 ...

  3. hc05与单片机连接图_单片机科普:单片机的IO口不够用了怎么办?如何扩展单片机的IO口...

    单片机是一种可编程器件,在各种消费类电子.工业电子.汽车电子等行业应用广泛,目前开发产品的构架就是以单片机为核心,根据不同的功能搭建不同的外设电路.同样的功能,每个人.每个团队所做的技术方案都不会相同 ...

  4. hc05与单片机连接图_单片机实例分享,快递追踪器

    如今,快递已经融入了人们的生活,收快递有时候也变成了没空的托词.国内快递品牌繁多,服务水平参差不齐,在给我们消费者带来更低廉价格的同时,也带来了不少的烦恼.快件丢失.损坏变得司空见惯,每次买东西都会习 ...

  5. hc05与单片机连接图_lcd1602接线图_lcd1602与单片机连接图

    lcd1602液晶屏在很懂工业产品上都有应用,LCD1602能够能够同时显示32个字符,价格便宜,编程简单而且稳定可靠.lcd1602液晶屏是一种图形点阵显示器,显示原理简单易懂,都是液晶屏内部的液晶 ...

  6. c语言 定时器作用,单片机定时器的作用及使用方法详解

    单片机定时器的作用及使用方法详解 单片机定时器在单片机的功能是很重要的,它一般被用作定时功能,来做定时检测.定时响应和定时控制,并且可以产生毫秒宽的脉冲信号来驱动步进电机.计时和计数的最终功能是通过计 ...

  7. AT89C51单片机流水灯c语言程序及详解(扫盲教程)

    AT89C51单片机是我们学习单片机必学的一个单片机,也是单片机入门的教材,下面给大家展示一下流水灯的编写方法适合初学者 首先先在proteus画出仿真图,方便仿真程序 下面来编写程序,先来写入头函数 ...

  8. 单片机-bmp280大气压强与温度传感器使用详解

    单片机-bmp280大气压强与温度传感器使用详解" 转载: https://blog.csdn.net/sunshinebooming/article/details/79637822 最近 ...

  9. 51单片机串口通信发送以及接收代码详解1

    #include <reg51.h> //实验现象:单片接收电脑发送的字符串,并发回给PC端的代码.//函数声明 void uart_init(void); void uart_seng_ ...

  10. 51单片机串口通信发送以及接收代码详解2

    #include <reg51.h> //实验现象:在电脑端没按下发送的时候,单片一直给电脑发送aaa字符串: //实验现象:在电脑端按下发送的时候,结束字符串aaa的发送代码,执行单片接 ...

最新文章

  1. ThinkPhp学习06
  2. linux驱动入口函数执行了,probe函数没有执行排查
  3. 这几天研究了一下JDK14,发现它处理NPE的方式,真香!
  4. Java设计模式——单例模式的七种写法
  5. python 日常小技巧
  6. jQuery 基础教程 (五)之使用jQuery创建动画效果
  7. 160 - 1 Acid burn
  8. C#的特性Attribute
  9. apache配置解析php
  10. android 刷新view位置,Android View刷新机制实例分析
  11. ModelSim6.3 使用教程By Sunev
  12. Python入门--常用的内置模块
  13. is和==,encode和decode
  14. ios整理(五)小应用-重力感应
  15. linux 下查看tomcat版本
  16. js获取网页元素文本
  17. iphone数据传输已取消怎么办_iPhone停用怎么办?如何解除iPhone已停用
  18. 2018.12.31 NOIP训练 czy的后宫6(线性dp)
  19. 20.EC实战 笔记本电脑的休眠唤醒是如何实现的
  20. 2021-07-28

热门文章

  1. linux权限百度贴吧,api接口权限控制
  2. 数通学习网络协议地图
  3. 高质量PWM数字功放芯片
  4. e会学c语言程序设计基础网课答案,C程序设计(双语版)习题答案
  5. Google Code的简单使用
  6. 如何获得免费卡巴斯基激活码?
  7. 表白网页制作_表白网页_创意表白_表白神器
  8. 不确定性环境下的智慧城市顶层设计
  9. 服务器项目管理软件,项目管理软件-Microsoft Project.pdf
  10. 软件定义存储正当时 厂商纷纷争抢一杯羹