0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32入门学习笔记之STM32F103环境搭建(上)

jf_78858299 来源:滑小稽笔记 作者:电子技术园地 2023-02-16 09:39 次阅读

1.1 STM32F103单片机概述

ARM公司在ARM11以后的产品改用Cortex命名,主要分为三种,Cortex-M系列,Cortex-R系列和Cortex-A系列,Cortex系列属于ARMv7架构,这是2010年为止ARM公司最新的指令集架构,其中Cortex-M主要用于低端的嵌入式控制系统中,Cortex-R主要用于实时系统中,Cortex-A系列则是用于操作系统智能设备和移动电话等领域,比如常见的Cortex-A15(用于Android,Ubuntu等系统中)。

意法半导体(ST公司)开发的STM32就属于Cortex-M架构,该架构细分又可以分为M0,M0+,M3,H7等,以最常见的STM32F103为例,该芯片属于Cortex-M3架构,CPU主频72MHz,内置高精度ADC,USART,CANUSBSDIO等模块,极大的便于产品的设计。

以STM32F103ZET6为例,该芯片封装为LQFP-144,内置资源如下所示:

(1)1组17通道高精度ADC,1组15通道ADC,1组13通道ADC,转换速度可达1us;

(2)1组2路DAC输出;

(3)8组高级定时器(可以做电容捕捉,PWM输出,基本定时等功能);

(4)高精度RTC模块,2路时钟可选;

(5)1组CAN,支持任意波特率;

(6)2组硬件IIC

(7)3组硬件SPI;

(8)5组串口

(9)1组SDIO模块,用于外接SD卡通信

(10)1组USB模块,可做主机,可做从机;

(11)2组I2S模块,用于I2S通信;

(12)1组CRC模块;

(13)2组看门狗模块;

(14)1组DMA模块;

1.2 STM32F103ZET6最小系统

1.2.1 原理图

图片

STM32F103的最小系统由备用电源下载接口,滤波电容,启动端子和时钟电路组成,其中滤波电容主要用于稳定CPU电源端口电压,由于CPU电源端口有12组,所以利用12个100nF电容来稳定每个端口的电压,布线的时候,每个电容离着供电端口越近越好。

1.2.2 时钟电路

图片

单片机最小系统有两个晶体振荡器,其中8MHz提供主系统工作时钟脉冲,即CPU内核,系统总线和除RTC时钟外其他外设的工作时钟,32.768KHz时钟专用于CPU内部RTC时钟脉冲。

1.2.3 复位电路

图片

由于STM32F103属于低电平复位,所以设计了如上图所示电路进行复位,初始状态电容两端电压为0,相当于低电平,上电后,电容开始充电,随着充电时间的上升,电容两端电压呈现指数上升(电路分析中专门讲解过这部分内容),随着电容充满电,电容两端理论电压逐渐达到3.3V,此时复位结束,如果想要不断电复位,只需要按一下按键S1,按下按键后,电容对地放电,放完电后达到低电平,此时开始复位,然后重复上电复位的过程。

1.2.4 启动选择端口

图片

图片

STM32有三种启动方式,通过BOOT0和BOOT1的电平选择,具体分配如下表所示。

BOOT0 BOOT1 启动方式
0 × FLASH启动(用户闪存器启动)
1 0 系统存储器启动(主要用于串口下载)
1 1 SRAM启动,主要用于在SRAM中调试代码

一般启动程序都在FLASH中启动,如果出现芯片进入低功耗模式或者禁用了调试端口,那么串口激活是唯一的办法,所以建议设计产品的时候,BOOT0和BOOT1两个引脚用0Ω电阻引出来。

1.2.5 VBAT供电

图片

VBAT供电主要用于RTC和备份区域数据不丢失使用,当外部3.3V断电之后,二极管D1处于截止状态,此时D2负极处于电平,二极管D2正向导通,通过3V纽扣电池给VBAT供电,防止RTC和备份区域的数据丢失。

1.2.6 串口下载与SW仿真

图片

图片

STM32下载程序有两种方式,一种是传统的串口模式,通过BOOT0和BOOT1启动系统存储器,然后将程序烧写进FLASH中,然后断电,设置FLASH启动后就可以启动程序,还有一种特殊的方式,就是SW模式,SW模式一种单线FLASH烧写模式,通过CLK和DATA两根线,将程序直接烧写进FLASH,并且通过这两根线进行在线仿真,可以直接将CPU中所有寄存器的值全部实时读取,用于简化调试过程。这个功能是51单片机不会有的。

1.2.7 电源电路

图片

STM32F103采用3.3V电源进行供电,但是一般USB接口或者充电宝都是输出DC5V,这就需要一个LDO来进行电压变换,将5V电压转换为3.3V电压供STM32使用。

1.3 STM32工程创建

STM32的程序也是可以使用51的IDE编写的,KEIL作为集成开发环境,现在已经可以大多数主流CPU,比如之前的51系列,这次的ST系列,还有NXP公司的iMX系列等,下面来说明如何使用KEIL来创建STM32程序。

STM32的工程不同于51的工程,需要好几个文件来支持,由于这次创建的是空白工程,所以只需要创建主函数的c文件,启动汇编文件,和STM32寄存器文件。

(1)安装ARM版本的KEIL,从KEIL官网或者文中附带的链接下载安装包,安装时记住不能有中文路径,直接安装即可。

(2)安装STM32F1系列固件库,从KEIL官网找到安装包,下载后安装(注:KEIL版本必须是ARM版本的,C51版本安装不上)。

下载固件库之后,双击安装即可。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44482

    浏览量

    631751
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9021

    浏览量

    366382
  • Cortex
    +关注

    关注

    2

    文章

    201

    浏览量

    46408
  • 嵌入式控制
    +关注

    关注

    0

    文章

    37

    浏览量

    14499
收藏 人收藏

    评论

    相关推荐

    STM32F103入门系列

    学习板:STM32F103ZET6强推系列:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F10
    发表于 08-17 09:03

    STM32F103如何搭建开发环境

    STM32F103如何搭建开发环境
    发表于 11-26 06:59

    基于STM32F103的振动监测系统设计

    基于STM32F103的振动监测系统设计。
    发表于 11-09 17:49 43次下载

    STM32F103封装方式与功能配置

    本文介绍STM32F103封装方式和STM32F103管脚功能的配置。
    发表于 08-03 17:44 2.1w次阅读
    <b class='flag-5'>STM32F103</b>封装方式与功能配置

    STM32F103使用总结

    STM32F103使用总结
    发表于 10-24 10:22 152次下载

    stm32f103移植

    stm32f103移植
    发表于 10-27 09:03 43次下载
    <b class='flag-5'>stm32f103</b>移植

    STM32F103教程之STM32F103单片机的使用心得资料免费下载

    本文档的主要内容详细介绍的是STM32F103教程之STM32F103单片机的使用心得资料免费下载目前很火的设计STM32教程。
    发表于 09-26 08:00 254次下载

    STM32F103 CAN模板程序

    STM32F103 CAN模板程序
    发表于 11-09 11:08 67次下载
    <b class='flag-5'>STM32F103</b> CAN模板程序

    stm32f030和stm32f103功能差异

    stm32f030和stm32f103功能差异主要表现在哪?
    的头像 发表于 07-22 09:35 2.2w次阅读

    STM32F103学习笔记三 串口通信

    STM32F103学习笔记三 串口通信
    发表于 11-25 09:06 71次下载
    <b class='flag-5'>STM32F103</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>三   串口通信

    STM32F103 模拟IIC时序

    STM32F103 模拟IIC时序
    发表于 11-25 09:51 34次下载
    <b class='flag-5'>STM32F103</b>  模拟IIC时序

    [笔记]|[stm32]|[寄存器存储器区别]|[PWM]|[串口]|[Timer]stm32f103笔记

    [笔记]|[stm32]|[寄存器存储器区别]|[PWM]|[串口]|[Timer]stm32f103笔记笔记为18.12.21笔者期末复
    发表于 12-06 18:51 10次下载
    [<b class='flag-5'>笔记</b>]|[<b class='flag-5'>stm32</b>]|[寄存器存储器区别]|[PWM]|[串口]|[Timer]<b class='flag-5'>stm32f103</b><b class='flag-5'>笔记</b>

    GD32F103STM32F103的区别 2021.6.2

    GD32F103STM32F103区别介绍关键词Key words:GD32F103STM32F103摘要Abstract:本文主要是GD32F
    发表于 12-08 11:06 82次下载
    GD32<b class='flag-5'>F103</b>与<b class='flag-5'>STM32F103</b>的区别 2021.6.2

    学习STM32F103的DAC功能

    三勺最近在学习STM32F103的DAC功能,本文主要解释在配置DAC寄存器实现相应功能时遇到的一些问题。
    的头像 发表于 10-24 16:00 2432次阅读
    <b class='flag-5'>学习</b><b class='flag-5'>STM32F103</b>的DAC功能

    学习STM32F103的ADC功能

    三勺最近在学习STM32F103的ADC功能,居然连最简单的独立模式的单通道的电压采集都不能实现,这就不能忍了,这是对智商的侮辱。
    的头像 发表于 10-24 16:06 2020次阅读
    <b class='flag-5'>学习</b><b class='flag-5'>STM32F103</b>的ADC功能