[嵌入式软件][入门篇][仿真平台][STM32CubeMX] GPIO和PLL的介绍

本文主要是介绍[嵌入式软件][入门篇][仿真平台][STM32CubeMX] GPIO和PLL的介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、GPIO简介
    • (1) IO类型和功能
    • (2) 内部上下拉
  • 二、PLL简介
    • (1)什么是锁相环
    • (2)我们只需知道什么?
  • 三、STM32CubeMX配置
  • 四、HAL库的使用
  • 五、示例代码
  • 六、仿真效果(指示灯闪烁)

一、GPIO简介

GPIO是通用输入输出端口的简称,可以通过软件来控制输入和输出。

  1. STM32的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、 控制以及数据采集的功能。
  2. GPIO 最简单的应用还属点亮 LED 灯了,只需通过软件控制 GPIO 输出高低电平即可。当然GPIO还可以作为输入控制,比如在引脚上接入一个按键,通过电平的高低判断按键是否按下。

(1) IO类型和功能

  1. 通用输入/输出口用于芯片和外部进行数据传输,共有 4 组 GPIO:GPIOA、GPIOB、GPIOC 和GPIOD。
  2. 4 组 GPIO 的功能基本相同,可以通过配置将 GPIO 映射到对应芯片引脚,每个引脚可以被独立配置为数字输入或者输出口,也可以被配置为模拟输入(ADC)。
    3.外部中断、片上外设输入/输出等复用功能。同一时刻一个引脚仅可被映射一个复用功能,通过端口复用功能寄存器(GPIOx_AFR)配置。

(2) 内部上下拉

  1. 每个端口都可以配置成内部上拉(pull up)/下拉(pull down)的输入/输出,高阻输入(floating input),推挽输出(push-pull output),开漏输出(open drain output),增强驱动能力输出。
  2. 芯片复位后端口复位为高阻输入,目的是防止芯片在异常复位时,导致外部器件产生异常动作。
  3. 为了避免高阻输入而产生的漏电,用户要在芯片启动之后对端口进行相应配置(配置成内部拉高输入或者输出)。
  4. 端口被配成模拟端口后,数字功能被隔离,不能输出数字“1”和“0” ,CPU 读取端口的结果为“0” 。
  5. 所有端口都可以提供外部中断, 并且每个中断都可以配置成高电平触发、 低电平触发、 上升沿触发、下降沿触发或者任意边沿触发,支持边沿模式下的输入消抖。支持在工作模式/睡眠模式/深度睡眠模式下产生中断。

二、PLL简介

中文直译:锁相环倍频输出

锁相环 (Phase-Locked Loop) 在现代电子与通信系统中, 扮演着至关重要的角色. 凭借其独特的同步和频率调整能力, 锁相环已成为实现高性能, 高稳定性系统的基石

(1)什么是锁相环

  1. 锁相环是一种闭环反馈控制系统. 用于生成与输入信号同步且相位相同的输出信号.
  2. 它的核心功能是在输入信号的相位变化时, 自动调整输出信号以保持同步.
  3. 这使得锁相环成为了一种理想的频率和相位控制技术.

(2)我们只需知道什么?

  1. 系统时钟生成: STM32 通常使用锁相环从外部晶振或内部时钟源生成所需的时钟.
    例如: 通过使用 PLL, 可以将外部 8 MHz 晶振提升到 72 MHz 或更高, 以满足高性能应用的需求
  2. USB 时钟生成: 在具有 USB 功能的 STM32 微控制器中, 锁相环可以用于生成精确的 48 MHz 时钟, 以满足 USB 2.0 全速 (12 Mbps) 或高速 (480 Mbps) 通信的要求
  3. 音频时钟生成: 在音频处理器应用中, STM32 微控制器的锁相环可以用于生成特定的硬盘采样率 (如 44.1 kHz, 48 kHz 等) 以及 I2S 和 SPDIF 接口所需的位时钟和帧时钟
  4. ADC 和 DAC 时钟生成: 在高速数据采集和信号处理应用中, 所喜爱你该换可以用于为 ADC 和 DAC 提供精确的采样时钟, 从而实现高性能的数据转换
    在这里插入图片描述

三、STM32CubeMX配置

我们按照仿真平台的电路,在软件中配置引脚。
本文章使用的电路,见上一篇。

四、HAL库的使用

todo

五、示例代码

大家可以回顾启蒙课。

todo

六、仿真效果(指示灯闪烁)

仿真效果

这篇关于[嵌入式软件][入门篇][仿真平台][STM32CubeMX] GPIO和PLL的介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681073

相关文章

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一

Java中 instanceof 的用法详细介绍

《Java中instanceof的用法详细介绍》在Java中,instanceof是一个二元运算符(类型比较操作符),用于检查一个对象是否是某个特定类、接口的实例,或者是否是其子类的实例,这篇文章... 目录引言基本语法基本作用1. 检查对象是否是指定类的实例2. 检查对象是否是子类的实例3. 检查对象是否

什么是ReFS 文件系统? ntfs和refs的优缺点区别介绍

《什么是ReFS文件系统?ntfs和refs的优缺点区别介绍》最近有用户在Win11Insider的安装界面中发现,可以使用ReFS来格式化硬盘,这是不是意味着,ReFS有望在未来成为W... 数十年以来,Windows 系统一直将 NTFS 作为「内置硬盘」的默认文件系统。不过近些年来,微软还在研发一款名

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1