0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32入门编程总结(时钟+GPIO)

piaofengzai ? 来源:piaofengzai ? 作者:piaofengzai ? 2022-02-19 16:53 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

STM32入门编程总结3 (时钟+GPIO)

时钟,单片机的时钟好比人的心脏,时钟歇了,单片机也就停止工作了,51单片机就一个时钟,12M、11.0592M居多,11.0592M这么有零有整奇葩的频率主要是为了51单片机串口通信波特率能正好是个整数;STM32单片机有四个时钟,HSI、HSE、LSI、LSE,HIS是内部高速时钟(RC振荡器)8Mhz,经过倍频器后,单片机主频上限可以达到64Mhz,HSE是外部高速晶振8Mhz,经过倍频器后单片机主频上限可以达到72Mhz,LSI是内部低速40Khz时钟(RC振荡器),可以为RTC(实时时钟类似于DS1302)提供时钟,也可以为独立看门狗提供时钟,LSE是32.768khz晶振,为RTC提供时钟,32.768khz这么有零有整的奇葩频率源自于,32768= 2的15次方,RTC时钟内部有个2的15次方分频器,所以32768hz晶振经过分频后正好是1秒,这是整个瓜的来龙去脉。

另外着重提一点,内部时钟(HSI、LSI)都是RC振荡器,HSE、LSE是晶振,晶振和RC振荡器不是一回事儿,说STM32单片机有四个晶振是错误的说法,说有四个时钟没啥问题,外部晶振的稳定性要比内部RC振荡器好一些,外部晶振可以倍频让STM32单片机主频达到72Mhz,内部RC振荡器倍频只能达到64Mhz。

插播一段MCO(main clock output对应PA8引脚),这个引脚可以输出单片机当前工作的主频/二分之一主频,程序设定是72Mhz运行,假设8Mhz晶振虚焊,STM32单片机不是立即停止工作,而是会自动切换到内部RC振荡器采用64Mhz的主频继续工作,对于特别严苛的应用场合,72Mhz和64Mh还是有很大差异,需要知道当前MCU是否稳妥工作在72Mhz,通过MCO这个pin就可以抓取到(1/2PLLCLK)。

再插播一段分频器,2分频器,是把输入端频率除以二然后输出;选择器,是选择某一个作为输入后直接输出;倍频器把频率翻倍,像我当前用的i9-9900k CPU睿频5.0Ghz,这个5.0Ghz不是晶振直接搞到5.0Ghz,而是100Mhz晶振经过内部倍频电路翻50倍搞到5.0Ghz的。

STM32单片机的大部分外设都挂载在APB2、APB1总线上,GPIO、UART1、SPI1、ADC1、2、EXTI、TIM1都是APB2(72Mhz)的小弟,APB1(36Mhz)上挂载的是IIC1-2、CAN1-2、UART2-5、SPI2-2等,APB2上的外设用的频率多一些,毕竟很多小伙伴磨炼了多年也就止步于一LED灯大师。

GPIO口,通用输入输出口,51单片机P0、P1、P2、P3每组从0-7共8个IO口,STM32单片机,分为GPIOA-G,每组0-15共16个IO口,51单片机的IO口比较省心,要么置零要么置1,STM32的IO口花活儿多一些,整体分为两大类,输出类:(1)推挽模式,可以粗略理解为把IO口要么接单片机的VDD,要么接GND,IO口带载上限:25ma,点个灯没啥问题;(2)开漏模式,如果说VDD是IO口的头,开漏模式相当于掀开IO口的头盖骨,让用户去自定义(51单片机P0口:“啊这事儿我熟”),供电电压不再局限于MCU的3.3V,可以5V且通过更大的电流。(复用推挽/开漏是指有的IO口身兼数职,既可以当UART用,又可以当IO口用)。

输入模式:上拉、下拉、浮空、模拟输入,上拉(弱)置高,下拉(弱)置低,浮空啥也不接(默认浮空),模拟输入是使用ADC外设时配置IO口的模式。IO口还有速度选择:LOW、Medium、High,速度越低,功耗越低;IO口接按键,设置为上拉模式比较好,上拉模式的抗干扰能力比下拉强,上拉平时是高电平,来个尖峰干扰还是高电平;下拉平时是低电平,来个尖峰干扰就拉高了会导致误认为有按键按下,所以综合考虑,按键采用IO口上拉更稳妥。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    99

    文章

    6731

    浏览量

    549698
  • STM32
    +关注

    关注

    2295

    文章

    11035

    浏览量

    366021
  • 编程
    +关注

    关注

    88

    文章

    3690

    浏览量

    95411
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32F40xxx和STM32f41xx flash编程手册

    PM0081_STM32F40xxx and STM32F41xxx单片机编程手册
    发表于 06-06 17:02 ?3次下载

    为什么GPIO配置总是出问题?

    STM32开发中,GPIO(通用输入输出)配置看似简单,但在实际开发中,很多人常常会遇到这些困惑:明明按照教程配置了GPIO,为什么LED灯就是不亮?为什么有时候按键无法响应,或者响应很慢
    的头像 发表于 04-07 11:59 ?748次阅读
    为什么<b class='flag-5'>GPIO</b>配置总是出问题?

    GPIO错误排查与解决

    在嵌入式系统和微控制器编程中,通用输入输出(GPIO)是最常见的接口之一。然而,在使用GPIO时,我们可能会遇到各种错误。 1. 理解GPIO GP
    的头像 发表于 01-09 09:46 ?2476次阅读

    如何快速入门HAL库编程 HAL库与裸机编程的比较

    如何快速入门HAL库编程 要快速入门HAL库编程,可以遵循以下步骤: 了解基础知识 : 掌握C语言编程基础,包括变量、数据类型、函数、指针等
    的头像 发表于 12-02 11:39 ?1222次阅读

    深度解析 4G模组GPIO编程技巧篇

    本文将解析4G模组GPIO编程技巧,从概述、软硬件环境准备、示例等详细道来:
    的头像 发表于 11-20 23:08 ?728次阅读
    深度解析  4G模组<b class='flag-5'>GPIO</b><b class='flag-5'>编程</b>技巧篇

    GPIO内部电路的原理

    前言 笔者近日在B站刷到了一个视频,使我对GPIO的I/O口内部基本结构以及工作原理有了恍然大明白的理解,现在对此做一个总结,并为大家推荐该视频Keysking 【STM32GPIO
    的头像 发表于 11-20 09:24 ?1405次阅读
    <b class='flag-5'>GPIO</b>内部电路的原理

    stm32 GPIO中断配置教程

    在嵌入式开发中,STM32微控制器因其高性能和丰富的外设而广受欢迎。GPIO(通用输入/输出)中断是STM32微控制器中常用的功能之一,它允许开发者在特定引脚上检测到外部信号变化时快速响应。 1.
    的头像 发表于 11-19 15:53 ?3579次阅读

    socket 编程基础入门

    Socket 编程基础入门 在计算机网络中,Socket 是一个抽象层,它将网络通信的细节隐藏起来,为开发者提供了一个简单的接口来发送和接收数据。Socket 编程是网络编程的基础,它
    的头像 发表于 11-12 14:03 ?1111次阅读

    STM32 GPIO的八种工作模式

    GPIO (general purpose input output)是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
    的头像 发表于 11-06 09:40 ?2074次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>的八种工作模式

    FPGA编程语言的入门教程

    FPGA(现场可编程逻辑门阵列)的编程涉及特定的硬件描述语言(HDL),其中Verilog和VHDL是最常用的两种。以下是一个FPGA编程语言(以Verilog为例)的入门教程: 一、
    的头像 发表于 10-25 09:21 ?1329次阅读

    树莓派gpio有什么用,树莓派gpio接口及编程方法

    一、树莓派GPIO的用途 树莓派(Raspberry Pi)是一款小巧、功能强大的单板计算机,广泛应用于编程教育、物联网项目、家庭媒体中心等领域。GPIO(General Purpose Input
    的头像 发表于 10-22 18:09 ?2794次阅读

    基于STM32的WiFi联网自动校准时钟设计

    之前在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟时钟
    的头像 发表于 10-15 13:39 ?2120次阅读
    基于<b class='flag-5'>STM32</b>的WiFi联网自动校准<b class='flag-5'>时钟</b>设计

    使用STM32CubeMX对红外波形进行GPIO输出,并LED显示

    @TOC 概述 本篇文章主要介绍如何使用STM32CubeMX对红外波形进行GPIO输出,并LED显示。 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板: 教学
    发表于 09-04 14:19

    stm32单片机用什么软件编程

    STM32单片机是一种广泛应用于嵌入式系统领域的微控制器,具有高性能、低功耗、丰富的外设接口等特点。要对STM32单片机进行编程,需要选择合适的软件工具。 概述 STM32单片机
    的头像 发表于 09-02 10:16 ?3639次阅读

    stm32用串口烧录怎么设置

    微控制器。 STM32CubeMX配置 打开STM32CubeMX,选择您的STM32芯片型号。 配置您的微控制器的时钟设置,确保PLL和其他时钟
    的头像 发表于 08-22 09:33 ?3620次阅读