stm32库开发细节复习必看
写在前面:收到很多bb的私信说有些图片不能正常显示,博主最近比较忙,但是一有时间就会更新维护图片滴!bb们可以点赞收藏起来方便后续查看更新呀~CMSIS时钟STM32有以下4个时钟源:1)高速外部时钟(HSE):以外部晶振作为时钟源,晶振频率可取范围为4~16 MHz,我们一般采用8 MHz的晶振。2)高速内部时钟(HSI):由内部RC振荡器产生,频率为8 MHz,但不稳定。3)低速外部时钟(LSE):以外部晶振作为时钟源,主要提供给实时时钟模块,所以一般采用32.768 kHz。配套STM32实验板上用的是32.768 kHz、6p负载规格的晶振。4)低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40 kHz。从时钟树的分析,看到经过一系列的倍频、分频后得到了几个与我们开发密切相关的时钟。1)SYSCLK:系统时钟,是STM32大部分器件的时钟来源,主要由AHB预分频器分配到各个部件。2)HCLK:由AHB预分频器直接输出得到,它是高速总线AHB的时钟信号,提供给存储器、DMA及Cortex内核,是Cortex内核运行的时钟,CPU主频就是这个信号,它的大小与STM32运算速度、数据存取速度密切相关。3)FCLK:同样由AHB预分频器输出得到,是内核的“自由运行时钟”。“自由”表现在它不来自时钟HCLK,因此在HCLK时钟停止时FCLK也继续运行。它的存在可以保证,在处理器休眠时也能够采样到中断和跟踪休眠事件,它与HCLK互相同步。4)PCLK1:外设时钟,由APB1预分频器输出得到,最大频率为36 MHz,提供给挂载在APB1总线上的外设。5)PCLK2:外设时钟,由APB2预分频器输出得到,最大频率可为72 MHz,提供给挂载在APB2总线上的外设。GPIOGPIO的8种工作模式4种输入模式:结构图的上半部分为输入模式结构,分为上拉输入模式、下拉输入模式、浮空输入模式和模拟输入模式。接下来就遇到了两个开关和电阻,与VDD相连的为上拉电阻,与VSS相连的为下拉电阻。再连接到TTL施密特触发器就把电压信号转化为0、1的数字信号存储在输入数据寄存器(IDR)。我们可以通过设置配置寄存器(CRL、CRH)来控制这两个开关,于是就可以得到GPIO的上拉输入模式(GPIO_Mode_IPU)和下拉输入模式(GPIO_Mode_IPD)了。从它的结构我们就可以理解,若GPIO引脚配置为上拉输入模式,在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为1,高电平。而下拉模式则相反,在默认状态下其引脚数据为0,低电平。而STM32的浮空输入模式(GPIO_Mode_IN_FLOATING)在芯片内部既没有接上拉,也没有接下拉电阻,经由触发器输入。配置成这个模式直接用电压表测量其引脚电压为1点几伏,这是个不确定值。由于其输入阻抗较大,一般把这种模式用于标准的通信协议如I2C、USART的接收端。模拟输入模式(GPIO_Mode_AIN)则关闭了施密特触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设模块。如传送至ADC模块,由ADC采集电压信号。所以使用ADC外设的时候,必须设置为模拟输入模式。4种输出模式:结构图的下半部分为输出模式结构,分为推挽输出模式、开漏输出模式、复用推挽输出模式和复用开漏输出模式。线路经过一个由P-MOS管和N-MOS管组成的单元电路。而所谓推挽输出模式,则是根据其工作方式来命名的。在输出高电平时,P-MOS管导通;低电平时,N-MOS管导通。两个管子轮流导通,一个负责灌电流,一个负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。推挽输出的供电平为0伏,高电平为3.3伏。的复用场合,就使用复用开漏模式。其他不同复用场合的复用模式引脚配置将在具体的例子中讲解。在使用任何一种开漏模式时,都需要接上拉电阻。在开漏输出模式时,如果我们控制输出为0,低电平,则使N-MOS管导通,使输出接地,若控制输出为1(无法直接输出高电平),则既不输出高电平,也不输出低电平,为高阻态。为正常使用时必须在外部接上一个上拉电阻。它具有“线与”特性,即很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接电源的电压。若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平,0伏。STM32的GPIO输出模式就分为普通推挽输出(GPIO_Mode_Out_PP)、普通开漏输出(GPIO_Mode_Out_OD)及复用推挽输出(GPIO_Mode_AF_PP)、复用开漏输出(GPIO_Mode_AF_OD)。普通推挽输出模式一般应用在输出电平为0和3.3伏的场合。而普通开漏输出模式一般应用在电平不匹配的场合,如需要输出5伏的高电平,就需要在外部接一个上拉电阻,电源为5伏,把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5伏的电平。对于相应的复用模式,则是根据GPIO的复用功能来选择的,如GPIO的引脚用作串口的输出,则使用复用推挽输出模式。如果用在IC、SMBUS这些需要线与功能点灯1)为控制LED灯,知道要使用GPIO外设。2)了解GPIO外设有什么功能,要如何使用。3)获知GPIO的地址映射,知道它所挂载的总线APB2。4)了解ST官方库对寄存器的封装。5)了解时钟树,查看GPIOC的时钟来源,即PCLK2。6)在stm32f10x_conf.h文件中包含用到的头文件stm32f10x_gpio.h、stm32f10x_rcc.h。7)在工程模板的基础上添加led.c、led.h用户文件。8)编写驱动初始化函数

相关新闻

JavaScript的基础构成和语法

JavaScript的基础构成和语法

目录 一、JavaScript 基础认知:是什么?由什么构成? 1.1、什么是 JavaScript 1.2、JavaScript 的三大组成部分 二、JavaScript 基础语法:入门必备核心 2.1、书写方式 2.2、输入与输出 2.3、变量与命名规范 变量声明与赋值&…

2026/7/13 9:50:07 阅读更多 →
什么是MIPI SoundWire

什么是MIPI SoundWire

MIPI SoundWire 是一种音讯接口,由 MIPI联盟音讯工作小组开发,旨在满足市场对全面、可拓展、低功耗音讯传输解決方案的需求。它为嵌入行动裝置或 PC 等广泛应用中的音讯设备提供数位協定。此外,SoundWire 是一种高效益的应用介面,…

2026/7/12 15:26:46 阅读更多 →
Linux内核SLUB调试功能

Linux内核SLUB调试功能

前言 在 Linux 内核开发与调试工作中,内存损坏问题始终是困扰开发者的顽疾。这类问题不仅隐蔽性强、复现难度高,还常常引发内核崩溃、系统卡顿等严重故障,甚至可能成为安全漏洞的突破口。此前我们已详细介绍了 KASAN(内核地址消毒剂)与 UBSAN(未定义行为消毒剂)的使用,…

2026/7/13 11:14:12 阅读更多 →

最新新闻

Llama-3.3-70B量化模型安全指南:保护您的AI推理服务终极教程 [特殊字符]

Llama-3.3-70B量化模型安全指南:保护您的AI推理服务终极教程 [特殊字符]

Llama-3.3-70B量化模型安全指南:保护您的AI推理服务终极教程 🔒 【免费下载链接】Llama-3.3-70B-Instruct-w4a16-asym-torchao-v0.17.0 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Llama-3.3-70B-Instruct-w4a16-asym-torchao-v0.17.0 在…

2026/7/13 20:58:17 阅读更多 →
Llama-3.2-3B-Instruct_rai_1.7.1_npu_16K安全部署指南:MIT许可证与使用限制说明

Llama-3.2-3B-Instruct_rai_1.7.1_npu_16K安全部署指南:MIT许可证与使用限制说明

Llama-3.2-3B-Instruct_rai_1.7.1_npu_16K安全部署指南:MIT许可证与使用限制说明 【免费下载链接】Llama-3.2-3B-Instruct_rai_1.7.1_npu_16K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Llama-3.2-3B-Instruct_rai_1.7.1_npu_16K 欢迎来到Llama-3.2…

2026/7/13 20:58:17 阅读更多 →
Qwopus3.6-27B-Coder-bf16提示词工程:提升代码生成质量的10个专业技巧

Qwopus3.6-27B-Coder-bf16提示词工程:提升代码生成质量的10个专业技巧

Qwopus3.6-27B-Coder-bf16提示词工程:提升代码生成质量的10个专业技巧 【免费下载链接】Qwopus3.6-27B-Coder-bf16 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Qwopus3.6-27B-Coder-bf16 想要让Qwopus3.6-27B-Coder-bf16这个强大的代码生成…

2026/7/13 20:56:16 阅读更多 →
Phi-4-mini-reasoning_rai_1.7.1_npu_16K核心技术揭秘:Quark量化与Token Fusion 16K上下文优化

Phi-4-mini-reasoning_rai_1.7.1_npu_16K核心技术揭秘:Quark量化与Token Fusion 16K上下文优化

Phi-4-mini-reasoning_rai_1.7.1_npu_16K核心技术揭秘:Quark量化与Token Fusion 16K上下文优化 【免费下载链接】Phi-4-mini-reasoning_rai_1.7.1_npu_16K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Phi-4-mini-reasoning_rai_1.7.1_npu_16K 在人工…

2026/7/13 20:56:16 阅读更多 →
OBS Studio终极输出架构解析:RTMP推流与本地录制技术实现完全指南

OBS Studio终极输出架构解析:RTMP推流与本地录制技术实现完全指南

OBS Studio终极输出架构解析:RTMP推流与本地录制技术实现完全指南 【免费下载链接】obs-studio OBS Studio - Free and open source software for live streaming and screen recording 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio OBS St…

2026/7/13 20:54:16 阅读更多 →
tchMaterial-parser:构建个人数字教材库的智能解决方案

tchMaterial-parser:构建个人数字教材库的智能解决方案

tchMaterial-parser:构建个人数字教材库的智能解决方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址…

2026/7/13 20:52:14 阅读更多 →

日新闻

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调整Palwor…

2026/7/13 0:01:19 阅读更多 →
浦东旧模块回收哪家强?专业评测带你一探究竟

浦东旧模块回收哪家强?专业评测带你一探究竟

于科技迅猛飞速迭代的当下此刻, 旧模块的回收处置, 不但关联着资源的再度利用, 而且更牵扯到数据安全以及环保合规事宜。你是不是也正为那堆积得如同山峦般的旧模块而发愁? 是不是不清楚该怎样安全且高效地去处理它们? 别忧心烦恼, 就在今日, 我会以具备权威影响力的自媒体博…

2026/7/13 0:01:19 阅读更多 →
卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

2026/7/13 0:05:20 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/13 4:38:36 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/13 4:38:38 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/13 4:38:40 阅读更多 →

月新闻