1.什么是ARM

ARM是一家芯片设计企业,也是对一大类微处理器的统称。

2.什么是STM32

ST:意法半导体(一个公司名),是一个SOC企业
M——Microelectronics的缩写即微控制器,M0、M3、M4
32——32位,表示是一个32位微控制器

STM32的芯片结构图

3.STM32F10x最常见的系列

STM32F101 基本型系列,主频为36MHz
STM32F102USB 基本型系列,主频为48MHz
STM32F103 增强型系列,主频为72MHz
STM32F105/107 互联网型系列,主频为72MHz

4.STM32芯片的命名规则

例如我们最常见的STM32F103C8T6
它是由意法半导体生产的M3架构的基础增强型32位MCU,具有48个引脚,64字节的Flash,采用LQFP封装,工作温度范围在-40~+85度

5.半导体常见的封装方式(以上图片均来源于网络)

DIP——(塑料)双列直插式封装,适用于中小规模集成电路,引脚数一般不超过100个

SOP——小外型表面贴片封装,广泛应用于10-40个引脚的芯片

PQFP——塑料方形扁平封装,管脚很细,一般应用于大规模或超大型集成电路,引脚数一般在100个以上

LQFP——薄型QFP指封装,本体厚度为1.4mm的QFP

BGA——(塑料)球栅阵列封装,Intel系列的80486和Pentium等CPU多采用这种封装方式

PGA——插针网格阵列封装,有专门的PGA插座,插拔方便,常用于CPU的封装

PLCC——塑封方形引脚插入式封装,外形尺寸比DIP封装小得多,必须采用SMT(表面贴装技术)进行焊接

6.1STM32开发模式

1、寄存器开发方式
直接对STM32的寄存器进行编程操作,是最底层开发方式,类似51直接操作引脚
2、标准外设库开发方式
将底层寄存器的操作进行了统一封装,包括所有标准器件外设的驱动器,采用C语言实现,开发人员只需要熟悉并调用相应的应用程序编程接口函数,即可实现对相关外设的驱动操作
3、HAL库开发方式
与STM32CubeMX软件(配置STM32代码的工具)配套使用的,它把底层硬件相关的内容封装起来并及进行抽象,通过图形化的操作方式自动生成相关外设的驱动代码,简单易用

6.2寄存器开发模式

根据STM32定义好的寄存器,查阅STM32中文参考手册对组成寄存器各bit位的操作说明,配置相应寄存器的各bit位,从而直接进行寄存器编程,完成相应功能。

6.3标准外设库开发方式

为了解决不同芯片厂商生产的基于Cortex内核的微处理器在软件上的兼容问题,ARM公司与众多芯片和软件厂商共同制定了CMSIS标准(Cortex Microcontroller Software Interface Standard,Cortex微控制器软件接口标准),意在将所有Cortex芯片厂商产品的软件接口标准化。
使用标准外设库,开发者无需深入掌握底层硬件细节,只需调用库函数对GPIO或者其他功能进行相关配置即可,能够轻松地应用每一个外设。

6.4HAL库开发方式

HAL(硬件抽象层)是位于内核与硬件电路之间的接口层,其目的是将硬件抽象化。基于HAL库的开发方式,其实质是仍然是通过操作底层寄存器来实现相应功能,只是将寄存器操作进行了封装,以函数形式提供给开发人员使用。

<4>STM32F103基础知识相关推荐

  1. 嵌入式Linux的OTA更新,基础知识和实现

    嵌入式Linux的OTA更新,基础知识和实现 OTA updates for Embedded Linux, Fundamentals and implementation 更新的需要 一旦嵌入式Li ...

  2. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  3. 嵌入式linux编程,嵌入式Linux学习笔记 - 嵌入式Linux基础知识和开发环境的构建_Linux编程_Linux公社-Linux系统门户网站...

    注:所有内容基于友善之臂Mini2440开发板 一.嵌入式Linux开发环境的构建 嵌入式开发一般分为三个步骤: 1.编译bootloader,烧到开发板 2.编译嵌入式Linux内核,烧到开发板 3 ...

  4. 《计算机网络应用基础》模拟试卷(六),《计算机与网络应用基础知识1》模拟试卷...

    <计算机与网络应用基础知识1>模拟试卷 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机与网络应用基础知识1& ...

  5. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  6. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

  7. 计算机基础知识掌握欠缺,《计算机基础知识》实验教学改革探讨.pdf

    <计算机基础知识>实验教学改革探讨.pdf Science& TechnologyVision 科 技 视 界 科技 探·索·争鸣 计<算机基础知识>实验教学改革探讨 ...

  8. python计算wav的语谱图_Python实现电脑录音(含音频基础知识讲解)

    前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些东西已经有了,不妨直接去 github 上搜,用 ...

  9. 计算机wrod初级考试题及答案,计算机基础知识+Word基础知识+Excel基础知识试题答案解析.doc...

    文档介绍: 计算机基础知识+ Word基础知识+ Excel基础知识 第一部分 一.单项选择题 1.世界上第一台电子数字计算机取名为(    ). A.UNIVAC    B.EDSAC    C.E ...

  10. java 前端基础知识_【计算机·知识】关于前端的计算机基础知识

    原标题:[计算机·知识]关于前端的计算机基础知识 作为一个刚刚入门的程序猿,你是否对专业知识有足够的了解?今天新闻君带你走进前端的世界. 前端的语言接触起来相对于后端的语言要容易不少,但前端的语言也有 ...

最新文章

  1. pycharm连接远程服务器
  2. IntelliJ idea 新建项目并导入netty(转)
  3. Linux NAPI/非NAPI
  4. python自学笔记(三)python基本数据类型之列表list
  5. 寻找免费的阿里云云盾隐秘购买入口,申请并下载ssl证书(https证书)的详细步骤
  6. cae计算机仿真分析技术,厉害了 揭秘汽车设计中CAE仿真技术
  7. 零基础学java web开发pdf_新手学Java Web开发.pdf
  8. vue学习笔记之:为何data是一个方法
  9. Android查看CPU和GPU使用率
  10. unix域套接字UDP网络编程
  11. oracle 调整缓存大小,设置数据缓冲大小_oracle
  12. 街机模拟器 WinKawaks 及街机 ROM 下载
  13. 89c52单片机c语言时钟,液晶显示AT89C52单片机DS1302实时时钟程序
  14. 龙芯2F一体机硬盘修复
  15. oracle32位迁移64位,Windows下Oracle10g32位遷移到11g64位
  16. 双系统重装win10后恢复grub引导
  17. mac百度网盘加速下载
  18. 中州韵输入法 linux,linux manjaro安装五笔+拼音输入法(中州韵)
  19. JAVA的卸载与重新安装
  20. 命名实体识别(二)——基于条件随机场的命名实体识别

热门文章

  1. LaTeX使用tikz-imagelabels宏包在图片上添加标签、文字等
  2. 如何测量多个变量之间的非线性关系
  3. 轻健身餐的市场前景如何?如何选择一个投资小、美食和健身餐清淡的品牌?
  4. 校园APP开发的优势和特点
  5. 最完美的“婚”鞋? NMD_R2“囍”(台灣愛迪達)
  6. OFFICE2016用过一段时间后正版密钥显示未激活问题
  7. 从哪些方面评价一款在线客服系统产品
  8. 记录学习Android基础的心得07:硬件控制P2
  9. java.lang.exceptionininitializererror_解决出现 java.lang.ExceptionInInitializerError错误问题
  10. chrome Android 前进 后退,停止Chrome后退/前进两根手指滑动