STM32——04-初识STM32单片机

news2025/1/25 4:35:07

什么是单片机?

单片机( Single-Chip Microcomputer )是一种集成电路芯片,把具有数据处理能力的中央处
理器 CPU 、随机存储器 RAM 、只读存储器 ROM 、多种 I/O 口和中断系统、定时器 / 计数器等功
能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、 A/D 转换器等电路)集成
到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

STM系列单片机命名规则

ST -- 意法半导体

M -- Microelectronics 微电子

32 -- 总线宽度

 

 STM32F103C8T6单片机简介

 标准库与HAL库区别 
1. 寄存器
寄存器众多,需要经常翻阅芯片手册,费时费力;
更大灵活性,可以随心所欲达到自己的目的;
深入理解单片机的运行原理,知其然更知其所以然。
2. 标准库
将寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用
每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx…之类的;
配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能;
大大降低单片机开发难度,但是在不同芯片间不方便移植。
3. HAL 库
ST公司目前主力推的开发方式,新的芯片已经不再提供标准库;
为了实现在不同芯片之间移植代码;
为了兼容所有芯片,导致代码量庞大,执行效率低下。
三、通用输入输出端口GPIO

什么是 GPIO
定义
        GPIO是 通用输入输出 端口的简称,简单来说就是 STM32 可控制的引脚 STM32 芯片的 GPIO 引脚与 外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
简单来说我们可以控制 GPIO 引脚的电平变化,达到我们的各种目的。
命名规则
组编号 + 引脚编号
组编号: GPIOA, GPIOB, GPIOC, GPIOD .. GPIOG
引脚编号: 0 1 2 3 4...15
组合起来:
PA0, PA1, PA2 .. PA15
PB0, PB1, PB2 .. PB15
PC0, PC1, PC2 .. PC15
...
有一些特殊功能的引脚是不能用作 IO 的。
内部框架图

推挽输出与开漏输出

 

推挽输出: 可以真正能真正的输出高电平和低电平

开漏输出: 开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完
成对外驱动

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/632088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day49_mybatis

今日内容 1 引言 2 MyBatis介绍 3 环境搭建 4 入门演示(MyBatis开发步骤) 5 CRUD 6 配置细节 一、引言 1.1 复习 第一阶段(JavaSE) java基本语法流程控制面向对象常用类集合异常IO多线程JDK新特性 第二阶段(JavaWeb) 前端 htmlcssjs --> JQueryboostraplayui 页面元素内置模…

攻防世界—file_include

打开之后发现是一段php代码 可以看出这是段代码有文件包含漏洞 下面是学习部分。。。着急看题解继续往下滑。。。谢谢。。。 文件包含漏洞(File Inclusion Vulnerability)是一种Web应用程序常见的安全漏洞,也是攻击者常用的攻击手段之一。这种…

一文讲完Java常用设计模式(全23种)

文章目录 介绍设计模式的六大原则一、创建型模式1、单例模式(Singleton Pattern)1)饿汉式2)懒汉式,双检锁3)静态内部类4)枚举 2、原型模式(Prototype Pattern)3、工厂模式…

基于Java+SpringBoot+Vue前后端分离教学资源共享平台系统

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

10:00面试,10:08就出来了 ,问的实在是太...

从外包出来,没想到算法死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内…

如何利用google的protobuf设计、实现自己的RPC框架

一、前言 这篇文章我们就来聊一聊 RPC 的相关内容,来看一下如何利用 Google 的开源序列化工具 protobuf,来实现一个我们自己的 RPC 框架,内容有点长,请耐心看完。 序列化[1]:将结构数据或对象转换成能够被存储和传输&…

有趣的机器人工具坐标系

当机器人旋转轴上的夹爪中心不在旋转轴中心时,如何让旋转轴围绕夹爪中心旋转,这就是工具坐标系,怎末实现呢?机器人都是建立工具坐标系实现,这是什么原理?我们来探索一下: 世界上的有些特例让人…

【AIOT】手势捕捉调研

title: Data Glove Record date: 2020-06-06 20:40:13 author: liudongdong1 img: https://gitee.com/github-25970295/blogImage/raw/master/img/gloves-1268930__340.webp reprintPolicy: cc_by cover: false categories: AIOT tags: Sense 动作捕捉(Motion capture)&#x…

程序员凡尔赛,工作三年晒出5月工资条,直言加班太累了

最近有工作3年的程序员晒出自己9月份的工资条,并直言加班太累了。 从工资条上可以看到,这个收入确实不算低,才3年时间,月工资就已经到了二万五了,这个工资已经可以击败绝大多数行业了。 不过二万五只是税前工资&…

【Python opencv 】零基础也能轻松掌握的学习路线与参考资料

Python opencv 是一种强大的计算机视觉库,它为计算机视觉和图像处理任务提供了必要的工具和技术实现。接下来,将介绍Python opencv的学习路线、重点和优秀实践。 一、学习路线 Python基础 在学习Python opencv之前,需要掌握Python的基础知…

STM32F105RBT6 使用定时器TIM3输出PWM波

1. TIM3的GPIO口,查阅STM32F105RBT6 数据手册,TIM3的4通道用的是PB1 2. 初始化GPIO口和定时器TIM3 2.1 相关函数 RCC_APB1PeriphClockCmd、GPIO_Init、TIM_TimeBaseInit、TIM_OC4Init、TIM_OC4PreloadConfig、NVIC_Init、TIM_ITConfig、TIM_Cmd、 voi…

中国范围逐月夜间灯光数据(2012-2021年)

人类以其文明和智慧创造了城市,城市最美的一面就是夜晚的灯光。对于经济学家来说,城市灯光的背后隐藏着巨大的社会经济秘密。一个城市夜晚的灯光不仅可以反映这个城市人口的数量、预测房价的趋势还能反映这个城市的经济发达程度。 根据灯光的亮度我们还可…

(七)CSharp-CSharp图解教程版-事件

一、发布者和订阅者 发布者/订阅者模式(publish/subscriber pattern): 很多程序都有一个共同的需求,即当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知。 发布者: 发布者类定义…

SpringSecurity 总结

SpringSecurity 总结 第一章 权限管理 权限管理SpringSecurity 简介整体架构 权限管理: 实现: "对用户访问系统的控制"(身份认证) , 按照 "安全规则"或者 "安全策略" (对已经认证的用户进行授权) 控制,用…

C++教程(05)——数据类型

C 数据类型 使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。 您可能需要存储各种数据类型(比如字符型、宽字符型、整型…

2.DIY可视化-拖拽设计1天搞定主流小程序-PHP安装

DIY可视化-拖拽设计1天搞定主流小程序-PHP安装 前言 话不多说,直接实操。一、拉取代码并导入 https://gitee.com/diygw/diygw-ui-php 找到本机一个文件夹: git clone 导入vscode 二、打开小皮,新建网站 启动web服务: 创建网站&#xff…

视觉SLAM十四讲——ch5实践(相机与图像)

视觉SLAM十四讲----ch3的实践操作及避坑 一、实践操作前的准备工作二、各个实践操作1.计算机中的图像2.3D视觉 三、遇到的问题 一、实践操作前的准备工作 安装OpenCV Ubuntu18参考:Ubuntu 18.04下opencv4安装及C配置 Ubuntu20参考:Ubuntu 20.04搭建OpenC…

shell脚本学习记录1(运算符)

Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 以下实例我们向脚本传递三个…

普中自动下载软件1.86下载程序失败案例

今天在用开发板做一个功能,下载的时候报错了,说芯片超时 确定驱动安装好了的 波特率也试了一圈 线也换过了 最后发现是芯片类型选错了,这个开发板是用的stc89c52,所以我选了图里这个,但是翻了开发板配套的资料,发现…

数据库系统概论 --- 期末单元集

第一章 绪论 一、选择题(必考题型) 1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是 阶段。 A.数据库系统 B.文件…