STM32F103C8T6第二天:认识STM32 标准库与HAL库 GPIO口 推挽输出与开漏输出

news2024/11/16 21:53:01

1. 课程概述(297.1)

在这里插入图片描述
在这里插入图片描述

  • 课程要求:C语言熟练,提前学完 C51

2. 开发软件Keil5的安装(298.2)

开发环境的安装

  • 编程语言:C语言
  • 需要安装的软件有两个:Keil5 和 STM32CubeMX

Keil5 的安装

使用 Keil4 写 STM32 代码其实也是可以,但需要很复杂的配置,不建议新手操作。
比较推荐 Keil5 编写 STM32 ,只需要一些简单的设置就可以上手,对新手友好。

  • 安装
    • 安装包(不需要太新,本课程以 MDK324 为例,最新的 MDK327 有问题)
    • 安装过程一路下一步即可(建议不要安装在 C 盘)
    • 安装路径一定不要有中文或空格!!(重要)加粗样式
    • Keil5 安装完之后,记得安装 F1 固件包
  • 破姐
  • 使用
    • 编程与编译过程与 Keil4 完全一样

3. STM32模板工程的创建与使用(299.3)

在这里插入图片描述

4. 如何下载程序到STM32单片机(300.4)

烧录工具有很多种,比如:串口、J-Link、ST-Link、U-Link 等等,本教程使用 ST-Link。

  • 安装驱动
    • 官网下载(慢)https://www.st.com/en/development-tools/stsw-link009.html
    • 资料包
  • 接线
    在这里插入图片描述
  • 配置

5. STM32CubeMX的安装(301.5)

  • 作用
    • 通过界面的方式,快速生成工程文件。
  • 下载
    • 官网(慢)https://www.st.com/zh/development-tools/stm32cubemx.html#overview
    • 资料包
  • 安装
    • 一路下一步,建议不要安装在C盘
  • 配置
    • 更新固件包位置(比较大,默认在C盘,可以更改到其它盘)
      • help —> update settings --> Firmware Repository

6. 使用STM32CubeMX生成工程文件(302.6)

  1. 点击「ACCESS TO MCU SELECTOR」;
  2. 左上角搜索对应的芯片,并在右侧双击对应的芯片;
    在这里插入图片描述
  3. 点击芯片对应的引脚,并进行配置;(Serial Wire:可做重复的修改)
    在这里插入图片描述
  4. 配置工程名称及位置:
    在这里插入图片描述

Toolchain / IDE:MDK-ARM(启用此选项后,在生成代码之后可自动调用 Keil5 开启此项目)
在这里插入图片描述
5. 按下图配置 Coder Generator :
在这里插入图片描述
6. 点击右上角 generate code :
在这里插入图片描述
7. 点击 Open Project 即可调用 Keil5 打开自动生成的工程文件。

7. STM32介绍(303.7)

什么是单片机?

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

STM系列单片机命名规则

  • ST – 意法半导体
  • M – Microelectronics 微电子
  • 32 – 总线宽度
    在这里插入图片描述

STM32F103C8T6单片机简介

在这里插入图片描述

8. 标准库与HAL库区别(304.8)

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

9. 什么是GPIO口(305.9)

  • 定义
    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的。
在这里插入图片描述

  • 内部框架图
    下图来源于官方参考手册,了解即可。
    在这里插入图片描述

10. 推挽输出与开漏输出(306.10)

  • 内部结构图
    在这里插入图片描述
  • 推挽输出: 可以真正能真正的输出高电平和低电平
  • 开漏输出: 开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动

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

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

相关文章

Fiddler实现 HTTP 网络抓包

文章目录 前言Fiddler 是什么下载 Fiddler1. 官网下载 Fiddler Classic2. 安装 Fiddler Classic3. 打开 Fiddler Classic 前言 前面我们简单地学习了关于应用层——自定义协议的知识,但是这都只是自定义协议,在实际生活中自定义协议用的还是占少数的&am…

终于有人把VMware虚拟机三种网络模式讲清楚了!

你们好,我的网工朋友。 前段时间VMware更新了,你用上最新版了吗? 有几个网工朋友留言说,在操作中遇到过各种各样的问题。比如说由于公司服务器重启导致出现下面的问题: 在Xshell里连接虚拟机映射时连接失败&#xf…

【Java|golang】2103. 环和杆---位运算

总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环: 第 …

k8s之亲和性、污点

目录 亲和性 键值运算关系 硬策略 软策略 Pod亲和性与反亲和性 污点(Taint) 和 容忍(Tolerations) 污点(Taint) 容忍(Tolerations) 维护操作 故障排除步骤 亲和性 官方介绍:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-nod…

nn.LayerNorm解释

这个是层归一化。我们输入一个参数,这个参数就必须与最后一个维度对应。但是我们也可以输入多个维度,但是必须从后向前对应。 import torch import torch.nn as nna torch.rand((100,5)) c nn.LayerNorm([5]) print(c(a).shape)a torch.rand((100,5,…

JMeter 接口自动化测试的最佳实践 (建议收藏)

JMeter 是一个开源的负载测试工具,它可以模拟多种协议和应用程序的负载,包括 HTTP、FTP、SMTP、JMS、SOAP 和 JDBC 等。在进行接口自动化测试时,使用 JMeter 可以帮助我们快速地构建测试用例,模拟多种场景,发现接口的性…

神舟十六乘组凯旋:故障预测与健康管理PHM在航空航天领域的关键作用

10月31日,神舟十六号载人飞船在经历五个月的太空飞行后顺利返回,安全着陆在内蒙古的东风着陆场,三位航天员安全顺利出舱。这意味着神舟十六号载人飞行任务取得圆满成功,标志着我国载人航天事业再创辉煌。在这背后,离不…

windows和docker环境下springboot整合gdal3.x

链接: gdal官网地址 gdal gdal的一个用c语言编写的库,用于处理地理信息相关的数据包括转换,识别数据,格式化数据以及解析 同时提供第三方语言的SDK包括python,java上述需要编译后使用 java是需要使用jni接口调用实现方法在wind…

力扣 搜索二维矩阵 二分

&#x1f468;‍&#x1f3eb; 搜索二维矩阵 ✨ AC code class Solution {public boolean searchMatrix(int[][] matrix, int target){int l 0;int row matrix.length;int col matrix[0].length;int r row * col - 1;while (l < r){int m l r >> 1;int x m / …

YOLOv7改进:加入解耦头Decoupled_Detect,涨点明显

💡💡💡本文全网首发独家改进:Decoupled_Detect,Hybrid Channels 策略重新设计了一个更高效的解耦头结构 Decoupled_Detect | 亲测在多个数据集能够实现涨点,多尺度特性在小目标检测表现也十分出色。 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c…

响应式设计疑难问题全解析!一篇读懂,立即上手

在我们当前的技术环境中&#xff0c;响应式设计已经成为前端开发的重要部分。其目标是让网站能够以最优的方式在任何设备上工作——不论是大屏电脑、笔记本、平板还是智能手机。这就要求网页能够自适应不同设备的屏幕大小。下面就让我们深入浅出地探讨响应式设计的精髓&#xf…

【python海洋专题三十五】海图数据加密--二维插值

【python海洋专题三十五】海图数据加密–二维插值 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画布和坐标轴 【Python海洋专题四】之水深地图图像修饰 【Python…

20231102从头开始配置cv180zb的编译环境(欢迎入坑,肯定还有很多问题等着你)

20231102从头开始配置cv180zb的编译环境&#xff08;欢迎入坑&#xff0c;肯定还有很多问题等着你&#xff09; 2023/11/2 11:31 &#xff08;欢迎入坑&#xff0c;本篇只是针对官方的文档整理的&#xff01;只装这些东西你肯定编译不过的&#xff0c;还有很多问题等着你呢&…

Linux 性能调优之资源限制(ulimitCgroup)

写在前面 考试整理相关笔记博文内容涉及 Linux 中资源限制的两种方式简单介绍 用户会话资源限制进程资源限制 理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其…

【报错解决】消息号:00058

背景&#xff1a;在配置OMX3碰到了如下报错。 分析&#xff1a;根据自己目前的理解&#xff0c;valuation level 决定了valuation area.在将工厂设为valuation之后&#xff0c;工厂自动就变为了valuation area.所以起码应该配置工厂。 Tcd:OX14 解决&#xff1a;使用OX18将工…

用逻辑分析仪观察串口Uart数据波形

一、概述 只讨论嵌入式编程中较为常用的异步串行接口&#xff08;Universal Asynchronous Receiver/Transmitter&#xff0c; UART&#xff09;&#xff0c;TTL电平。 串口的参数一般有&#xff1a; 1.波特率&#xff0c;数据传输速率&#xff0c;单位bps&#xff08;bits per…

Redis Twemproxy 集群,水平扩展 ,扩容方案

文章目录 一、概述二、Twemproxy 分布模式三、测试规划四、Redis 服务实例准备4.1 配置Redis实例4.2 创建关资源4.3 启动Redis服务实例 五、Twemproxy 安装准备六、Twemproxy 安装及集群配置6.1 安装 Twemproxy6.2 配置 Twemproxy6.3 启动 twemproxy6.4 测试 twemproxy 集群 如…

高月薪高年终如何抉择?

论坛上看到一篇文章&#xff0c;这个同学在纠结是选择月薪低x高年终还是选择高月薪的公司。 看了各位小伙伴给的建议&#xff0c;似乎都建议楼主去第二家高月薪的公司。 当然了&#xff0c;选择公司不能只看薪资高低&#xff0c;也要综合职级、老板、团队、职业发展潜力做决策…

selenium爬虫——以爬取澎湃新闻某搜索结果为例

文章目录 selenium爬虫——以爬取澎湃新闻某搜索结果为例前言需要导入的包需要避雷的点webdriver的版本要与浏览器一致如果使用爬虫打开了新网页&#xff0c;要记得跳转XPath和selector都可以直接复制爬取多网页时记得try打入word时调整字体的问题 完整程序爬取效果 selenium爬…

计算机的输入输出设备

文章目录 前言一、常见的输入输出设备1.字符输入设备2.图形输入设备3.图像输出设备 二、输入输出接口的通用设计三、CPU与IO设备的通信1.程序中断2.DMA&#xff08;直接存储器访问&#xff09; 前言 今天给大家介绍计算机的输入输出设备&#xff0c;包括三个板块&#xff1a;常…