接上文,文中的图片知识,大多数来自视频的截图(来自洋桃电子)。
欢迎大家批评指正!

STM32学习笔记-专栏

文章目录

  • 一、接口定义
    • 1 芯片引脚整体简介
    • 2 各部分引脚介绍
  • 二、开发板简介
  • 三、ISP下载
    • 1 安装 USB 驱动
    • 2 ISP程序下载——FlyMcu
      • 2.1 烧入FLASH:
      • 2.2 烧入SRAM:(烧写快,断电丢失)
  • 四、最小系统电路
    • 1 基本内部组成
    • 2 最小系统电路
  • 五、KEIL
    • 1 KEIL软件介绍
    • 2 安装
    • 3 工程结构
    • 4 固件库
      • 4.1 定义
      • 4.2 运行原理
      • 4.3 下载安装固件库
  • 六、编程语言介绍
    • 1、C语言
    • 2、对比
  • 七、固件库的调用和添加工程文件
    • 1、固件库
    • 2、添加文件
    • 3、移除文件

一、接口定义

杜老师戏称洋桃开发板是故宫布局,很有意思!

1 芯片引脚整体简介

  • 芯片1脚位置(引脚数逆时针递增)

  • F103(48pin)引脚分布:

2 各部分引脚介绍

二、开发板简介

开发板功能 :

  • 2 路继电器
  • 1 个 5 线步进电机接口
  • 1 个 RS232 接口
  • 1 个 RS485 接口
  • 1 个 CAN 总线接口
  • 1 个模拟量游戏摇杆
  • 4 个电容式触摸按钮
  • 1 个旋转编码器按钮
  • 8 位数码管及驱动芯片
  • 8 个 LED流水灯
  • 1 个 MicoUSB 接口
  • 1 个 TF 卡槽
  • 1 个 MP3 播放控制芯片
  • 1 个 U 盘或 USB 鼠标键盘接口
  • 1 个 5V 舵机接口
  • 1 个 JTAG 调试接口
  • 1 个面包板
  • 1 个复位按钮
  • 1 个唤醒按钮
  • 1 个 OLED 显示屏
  • 1 个光敏电阻
  • 1 个电压调节电位器
  • 核心板插座
  • 核心板接口扩展插座
    (所有功能均可用跳线帽与单片机的 IO 接口连接或断开)

三、ISP下载

1 安装 USB 驱动

CH340-USB转串口驱动

2 ISP程序下载——FlyMcu

2.1 烧入FLASH:
  • 搜索串口
  • 配置波特率
  • 打开hex文件
  • 勾上 编程前重装文件、校验、编程后执行、编程到FLASH时写选项字节
  • 设置选项等字节—— FF——设成FF阻止读出
  • 开始编程,即烧写成功

2.2 烧入SRAM:(烧写快,断电丢失)
  • 在开发板上按键,切换ISP模式。
  • 勾选上 使用RAMIsp
  • 步骤同上,烧写成功

四、最小系统电路

1 基本内部组成

  • 内核
  • 存储器
  • 时钟和启动
  • 复位
  • 电源管理

2 最小系统电路

  • BAT1——纽扣电池:为内部RTC供电
  • 右边6个——滤波电容:去除电源电压的波动干扰。应围绕单片机周围布局布线,以达到最佳滤波效果。
  • K3——手动复位按键
  • Y1、Y2——外部晶振
  • 左边4个——起振电容:帮助晶体振荡器稳定的工作
  • 30、31——串口1的收发脚:USB下载口
  • 40、20——BOOT0、1:启动模式选择引脚

五、KEIL

1 KEIL软件介绍

KEIL 是一款用于微控制器的软件开发平台。

  • 把用户的 C 语言、汇编语言、 C ++语言等转换成 HEX 或 BIN 等文件 (编译)
  • KEIL 就是将程序编辑、编译、调试仿真等功能集合在一个叫 uVision 的软件中,这就是集成开发环境
  • KEIL 软件用于STM32的 ARM 内核编译器叫 KEIL MDK
  • KEIL MDK 有多个版本,包括 MDK-Pro(专业版)、 MDK-ARM(标准版)、MDK-CortexM(Cortex版)、 C-MDK-ARМ(中国版)、 MDK-Lite(试用版)。
  • KEIL 原是一家德国公司,后被 ARM 公司收购。
  • 目前主流的集成开发环境有 KEIL 和 IAR ,二者的使用方法大同小异。

2 安装

  • 安装
  • 获得MDK编译内核的序列码,破解(可与51内核共存)

3 工程结构

  • CMSIS——内核驱动程序: 包含c⽂件,ST公司官⽅提供的,对arm内核和mcu系统的基础⽂件,⼀般不做修改。
  • LIB——内部功能的基本函数库: 包含c⽂件,st公司提供,需要根据⽤户的需求对其进⾏增减。
  • STARTUP——单⽚机启动程序: 包含asm⽂件,st公司提供,负责启动,⼀般不做修改。
  • USER——⽤户程序(包括主函数): 包括main.c⽂件和stm32f10x_it.c⽂件。前者为⽤户程序,需要⽤户进⾏修改;后者不要修改。
  • BASIC——内部功能的驱动函数: 包括dealy.c和sys.c。前者为⽤户编写的延时程序;后者为st公司提供,不作修改。
  • HARDWARE——外部硬件的驱动程序: 包括led.c和key.c两个⽂件,驱动如led,oled、继电器、微动开关之类。均为⽤户⾃⼰编写,需根据需求修改。

4 固件库

4.1 定义

固件库: 工程文件主要由 底层硬件驱动程序 + 上层用户应用程序 组成。ST官方将通用的底层硬件程序文件写好并封装成文件包,即为固件库。

4.2 运行原理

  • 功能配置寄存器: SRAM 里特定的部分,专门用于软件和硬件的连接。
  • 用户程序通常存放在FLASH,运行时被ARM内核调用。内核根据程序指令,调用功能配置寄存器。功能寄存器每一位置零或置一,都可以操作硬件的状态。

  • 基于运行原理的三种编程方案

    • 寄存器操作:用户直接操作底层寄存器。简单,效率高,占用内存小,但学习复杂繁琐
    • 标准固件库:官方封装各种驱动程序为特定函数,用户直接调用函数即可。
    • STM32Cube:图形化编程方案,官方最近主推。HAL、LL模式各有优缺点,互相弥补。

4.3 下载安装固件库
  • 在官方途径下载固件库
  • 新建工程文件夹,在内分别新建 CMSIS、Lib、Startup、User文件夹
  • 将官方固件库的文件复制进去
  • keil 新建工程在工程文件夹,选择芯片型号
  • keil 红绿白方块的图标的按钮,新建上述四个文件,并分别导入四个文件夹的文件
  • keil 魔术棒按钮。target——8.0MHz;Output——create HEX;C/C++——Preprocessor Symbols——Define输入USE_STDPERIPH_DRIVER,STM32F10X_MD。Include Paths选择文件夹CMSIS、Lib\inc、Lib\src、Startup、User。
  • 在main.c里修改。
  • 编译

六、编程语言介绍

C语言和汇编语言都是人类易学易懂的语言,通过编译器(keil这样的软件)将代码转换为HEX或Bin文件,即单片机认识的语言,可直接在FLASH里读取运行的机械语言。

1、C语言

C 语言: 单片机开发主要学习的语言。"高级但又不太高级"的语言,和底层依旧可以保持一定的联系。因此,可以不需要任何运行环境支持便能运行,且具有良好的跨平台特性。

2、对比

汇编语言 C语言
低级语言 高级语言
直接操作底层寄存器 更偏向用户
执行效率最高 效率不如汇编
不易移植 易移植
不易编写和读懂 易编写和读懂
学习难度大 学习难度小

七、固件库的调用和添加工程文件

1、固件库

ST 官方有固件库说明书,涵盖STM32各个模块,可调用库函数,引脚等。

2、添加文件

添加自定义驱动文件:

  • 在工程文件夹中新建文件夹,例如 Hardware
  • 在其中新建功能模块文件夹,例如 LED
  • 在其中新建 “.c ”、“.h”文件,例如 led.c、led.h
  • 在 keil 打开该工程,点击三个小方块(红白绿)的按钮,在 Groups 新建 Hardware 文件夹
  • 点击添加文件,添加 led.c ,OK
  • 点击魔术棒按钮,C/C++选项卡,Include Paths 选择刚刚的文件夹,Hardware/LED ,OK

3、移除文件

  • 在 keil 打开该工程,点击三个小方块(红白绿)的按钮,在 Groups 删除 Hardware 文件夹
  • 删除 led.c ,OK

以上操作可以不必编译不需要的文件,减少资源占用,实际工程文件夹依旧有该文件,但不作编译,也不出现在keil工程侧栏文件目录里。
根据工程情况,删除不必要的驱动程序或固件库的函数等。

《STM32学习笔记》2——开发环境的建立相关推荐

  1. 安装成功配置环境变量_go语言学习笔记-Windows10开发环境安装和环境变量配置

    相关文档 go语言学习笔记-目录 1.安装 1.1.访问 https://golang.google.cn/dl/ 或 https://golang.org/dl/ 下载官方安装包 1.2.选择Win ...

  2. playframework学习笔记1 -- 开发环境和第一个工程

    对于scala的实际开发完全是新手,因此打算从play framework入手,学习一下实际开发中scala的使用,同时也了解一下play与spring mvc,struts这些传统的mvc框架有什么 ...

  3. libgdx 学习笔记一 开发环境搭建

    本章内容讲述 libgdx 开发环境.怎么配置eclipse 用来开发,并且在桌面和android中运行libgdx applications 注:文章就是根据libgdx官方文档翻译或加入自己的理解 ...

  4. CC2640R2F学习笔记(一.开发环境)

    文章目录 前言 一.硬件 二.操作系统 三.SDK 四.CCS 前言 以下列出CC2640R2F学习笔记所基于的软.硬件平台,笔记的所有实验.代码都是在这些平台上来进行的. 一.硬件 开发板LAUNC ...

  5. 实时操作系统-NuttX学习笔记(1)-开发环境搭建

    1 简介 1.1 背景 学习NuttX视频教程,该视频教程语言为英文,为了在以后的工作学习中用到,在此记录学习内容,方便自己和大家查阅. 1.2 开发环境 虚拟机+系统:虚拟机VMware® Work ...

  6. STM32学习笔记(一)丨建立工程丨GPIO 通用输入输出

    本篇文章包含的内容 一.软件下载注册.驱动安装 1.1 软件(器件支持包)下载 1.2 ST-LINK驱动安装 1.3 USB转串口驱动安装 二.工程的建立 2.1 STM32的开发方式 2.2 新建 ...

  7. (Object-C)学习笔记(一)--开发环境配置和与c语言的区别

    博主是大三快要实习的学生,作为软件技术专业的我认真的考虑了一下出路,认为去干起点低低java不如花点钱选择iOS.正好我也对iOS很感兴趣,虽然我赶不上08年之后的那一段互联网热潮,但是这一段时间互联 ...

  8. 【MindStudio训练营第一期】【昇腾AI训练营新手班学习笔记】开发环境配置

    准备 购买云服务器,安装提供的镜像 华为云:https://www.huaweicloud.com 下载MindStudio(windows),安装 MindStuidio下载页: https://w ...

  9. STM32工作笔记0016---MDK开发环境安装

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 安装uversion MDK5这个在安装目录中点击exe就可以直接安装, 安装后,打开破解程序破解 ...

  10. STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)

    本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...

最新文章

  1. 地图漫游功能的具体体现_骏谷科技|数据中心三维可视化管理系统功能亮点
  2. 2019 ICPC 南京 F. Paper Grading(字典树dfs序上树套树)
  3. biztalk BLogs
  4. 苹果春季发布会已开启直播;滴滴回应网约车司机被害​;微软Chromium内核浏览器曝光 | 极客头条...
  5. hibernate关联映射
  6. Druid手动创建连接的坑
  7. 【MFC开发(7)】编辑框控件Edit Control
  8. python将数据导入数据库 atomic_使用Atomic
  9. 2019最新IDEA Java教学视频课程资料
  10. 使用Python采集京东商品详情数据,并上传到拼多多商城中
  11. 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning...
  12. win10 蓝牙忽然消失 华硕主板
  13. woj1572 Cyy and Fzz KMP / AC自动机 + DP
  14. ant design vue全局引用一直提示没有isMoment参数的问题
  15. 【c语言作业-二维数组】编写程序,求一个给定的n阶方阵的鞍点。
  16. 【C进阶】字符串函数及其复写
  17. idea windows快捷键
  18. 大数据时代如何保障数据安全
  19. PHP http_build_query用法详解
  20. 「UPnP」- Universal Plug and Play @20210205

热门文章

  1. 计算机设备购置论证制度,西安交通大学大型仪器设备购置论证实施细则(西交实〔2018〕49号)...
  2. H5页面在微信浏览器中打开,右上角没有出现三个点
  3. linux查看网络|查看端口|查看路由|查看ip
  4. DaisyDisk怎样以管理员身份扫描磁盘或文件夹
  5. 对B端产品经理来说,懂点企业架构很重要!
  6. Excel导入数据,时间处理
  7. BZOJ 3323: [Scoi2013]多项式的运算
  8. 链读好文:热加密存储与冷加密存储有什么区别?
  9. 关于substance designer内创建好材质,导入unity却变成灰球的问题
  10. Oracle EBS 针对付款撤销不成功提示错误信息的解决方案