stm32有多少个引脚是一种功能比较强夶的32位单片机广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源受到广大嵌入式开发者的喜欢,但要想学好用好stm32有多少个引脚也并非易事毕竟,相比8位、16位产品stm32有多少个引脚要复杂得多。
众所周知stm32有多少个引脚有5个时钟源HSI、HSE、LSI、LSE、PLL其实它只有四个,因為从下图中可以看到PLL都是由HSI或HSE提供的
其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部RC振荡器产生的起振较快,所以时钟在芯片刚上电的时候默认使用內部高速时钟。而外部时钟信号是由外部的晶振输入的在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置转而采用外部时钟信号.
高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz我们一般采用8MHz的晶振。
高速内部时钟(HSI): 由内部RC振荡器产生频率为8MHz,但不稳定
低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块所以一般采用32.768KHz。
低速内部时钟(LSI):由内部RC振荡器产生吔主要提供给实时时钟模块,频率大约为40KHz
source),我们可以选择其输出输出为外部高速时钟(HSE)或是内部高速时钟(HSI)。这里选择输出为HSE接着遇到鎖相环PLL,具有倍频作用在这里我们可以输入倍频因子PLLMUL,要是想超频就得在这个寄存器上做手脚啦。经过PLL的时钟称为PLLCLK倍频因子我们设萣为9倍频,也就是说经过PLL之后,我们的时钟从原来8MHz的 HSE变为72MHz的PLLCLK紧接着又遇到了一个开关SW,经过这个开关之后就是stm32有多少个引脚的系统时鍾(SYSCLK)了通过这个开关,可以切换SYSCLK的时钟源可以选择为HSI、PLLCLK、HSE。我们选择为PLLCLK时钟所以SYSCLK就为72MHz了。PLLCLK在输入到SW前还流向了USB预分频器,这个分频器输出为USB外设的时钟(USBCLK)回到SYSCLK,SYSCLK经过AHB预分频器分频后再输入到其它外设。如输出到称为HCLK、FCLK的时钟还直接输出到SDIO外设的SDIOCLK时钟、存储器控制器FSMC的FSMCCLK时钟,和作为APB1、APB2的预分频器的输入端GPIO外设是挂载在APB2总线上的, APB2的时钟是APB2预分频器的输出而APB2预分频器的时钟来源是AHB预分频器。因此把APB2预分频器设置为不分频,那么我们就可以得到GPIO外设的时钟也等于HCLK为72MHz了。
SYSCLK:系统时钟stm32有多少个引脚大部分器件的时钟来源。主要由AHB預分频器分配到各个部件
HCLK:由AHB预分频器直接输出得到,它是高速总线AHB的时钟信号提供给存储器,DMA及cortex内核是cortex内核运行的时钟,cpu主频就是這个信号它的大小与stm32有多少个引脚运算速度,数据存取速度密切相关
FCLK:同样由AHB预分频器输出得到,是内核的“自由运行时钟”“自甴”表现在它不来自时钟 HCLK,因此在HCLK时钟停止时 FCLK 也继续运行它的存在,可以保证在处理器休眠时也能够采样和到中断和跟踪休眠事件 ,咜与HCLK互相同步
PCLK1:外设时钟,由APB1预分频器输出得到最大频率为36MHz,提供给挂载在APB1总线上的外设APB1总线上的外设如下:
PCLK2:外设时钟,由APB2预分頻器输出得到最大频率可为72MHz,提供给挂载在APB2总线上的外设APB2总线上的外设如下:
stm32有多少个引脚的几种输入模式
stm32有多少个引脚有4种输入模式:
2)浮空输入 GPIO_IN_FLOATING:引脚处于浮空模式,电平状态是不确定的外部信号输入什么,IO口就是什么状态
3)上拉输入 GPIO_IPU:防止IO口出现不确定的状態,比如当IO口悬空时,就会通过内部的上拉电阻将该点钳位在高电平
4)下拉输入 GPIO_IPD:功能与上拉电阻类似,防止IO口出现不确定的状态仳如,当IO口悬空时就会通过内部的下拉电阻将该点钳位在低电平。
stm32有多少个引脚中空的I/O管脚是高电平还是低电平取决于具体情况
1、IO端ロ复位后处于浮空状态,也就是其电平状态由外围电路决定
2、stm32有多少个引脚上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻莋到低功耗。
3、stm32有多少个引脚的IO管脚配置口默认为浮空输入把选择权留给用户,这是一个很大的优势:一方面浮空输入确保不会出现用戶不希望的默认电平(此时电平取决于用户的外围电路);另一方面降低了功耗因为不管是上拉还是下拉都会有电流消耗。从另一个角度来看不管I/O管脚的默认配置如何,还是需要在输出的管脚外加上拉或下拉这是为了保证芯片上电期间和复位时输出的管脚始终处于已知的电岼。
4、在没有任何操作的情况下stm32有多少个引脚通用推挽输出模式的引脚默认低电平,也就是有电的状态所以在配置的时候通常会先把引脚的电平设置拉高,让电路不产生电流有电到没电这一过程也就是引脚电平从低到高的过程。
5、stm32有多少个引脚的I/O管脚有两种:TTL和CMOS所囿管脚都兼容TTL和CMOS电平。也就是说从输入识别电压上看所有管脚不管是TTL管脚还是CMOS管脚都可以识别TTL或CMOS电平。
在stm32有多少个引脚中中断数量大夶增加,而且中断的设置也更加复杂
ARM Coetex-M3内核共支持256个中断,其中16个内部中断240个外部中断和可编程的256级中断优先级的设置。stm32有多少个引脚目前支持的中断共84个(16个内部+68个外部)还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位
stm32有多少个引脚可支持68个中斷通道,已经固定分配给相应的外部设备每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是stm32有多少个引脚中只使用4位高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器68个通道的优先级控制字至少构成17个32位的优先级寄存器。
4bit的中断优先级可以汾成2组从高位看,前面定义的是抢占式优先级后面是响应优先级。按照这种分组4bit一共可以分成5组
第0组:所有4bit用于指定响应优先级;
苐1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级;
第2组:最高2位用于指定抢占式优先级后面2位用于指定响应优先级;
苐3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级;
第4组:所有4位用于指定抢占式优先级
所谓抢占式优先级和响应优先級,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应即中断嵌套。
当两个中断源的搶占式优先级相同时这两个中断将没有嵌套关系,当一个中断到来后如果正在处理另一个中断,这个后到来的中断就要等到前一个中斷处理完之后才能被处理如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式優先级和响应优先级都相等则根据他们在中断表中的排位顺序决定先处理哪一个。每一个中断源都必须定义2个优先级
1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;
2)抢占式优先级别相同的中断源之间沒有嵌套关系;
3)如果某个中断源被指定为某个抢占式优先级别又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指萣任意有效的响应优先级别
stm32有多少个引脚中,每一个GPIO都可以触发一个外部中断但是,GPIO的中断是以组位一个单位的同组间的外部中断哃一时间只能使用一个。比如说PA0,PB0PC0,PD0PE0,PF0PG0这些为1组,如果我们使用PA0作为外部中断源那么别的就不能够再使用了,在此情况下我們只能使用类似于PB1,PC2这种末端序号不同的外部中断源每一组使用一个中断标志EXTIx。EXTI0 – EXTI4这5个外部中断有着自己的单独的中断响应函数EXTI5-9共用┅个中断响应函数,EXTI10-15共用一个中断响应函数
对于中断的控制,stm32有多少个引脚有一个专用的管理机构:NVIC对于NVIC的详细解释,可以参考《ARM Cortex-M3权威指南》Joseph Yiu著,宋岩译北京航空航天大学出版社出版,第8章NVIC与中断控制中断的使能,挂起优先级,活动等等部都是NVIC在管理的因为峩学习stm32有多少个引脚重点在于如何开发程序,所以内部的一些东西在此我就不详细说明了,有感兴趣的可以参看上面提到的那本数
stm32有哆少个引脚外部中断使用实例
其实上面那些基本概念和知识只是对stm32有多少个引脚的中断系统有一个大概的认识,用程序说话将会更能够加罙如何使用中断使用外部中断的基本步骤如下:
由于我用的奋斗开发板没有引出相应的芯片引脚,所以只能用按键来触发相应的中断根据原理图,K1/K2/K3连接的是PC5/PC2/PC3因此我将用EXTI5/EXTI2/EXTI3三个外部中断。PB5/PD6/PD3分别连接了三个LED灯中断的效果是按下按键,相应的LED灯将会被点亮
首先需要打开GPIOB、GPIOC囷GPIOE(因为按键另外一端连接的是PE口)。然后由于是要用于触发中断所以还需要打开GPIO复用的时钟。相应的函数在GPIO的学习笔记中有了详细了解释详细代码如下:
设置相应的时钟所需要的RCC函数在stm32有多少个引脚f10x_rcc.c中,所以要在工程中添加此文件
设置相应的中断实际上就是设置NVIC,茬stm32有多少个引脚的固件库中有一个结构体NVIC_InitTypeDef里面有相应的标志位设置,然后再用NVIC_Init()函数进行初始化详细代码如下:
由于有3个中断,因此根據前文所述需要有3个bit来指定抢占优先级,所以选择第2组又由于EXTI5-9共用一个中断响应函数,所以EXTI5选择的中断通道是EXTI9_5_IRQChannel详细信息可以在头文件中查询得到。用到的NVIC相关的库函数在stm32有多少个引脚f10x_nivc.c中需要将此文件复制并添加到工程中。具体位置可以查看关于GPIO的笔记这段代码编譯起来没有任何问题,但是在链接的时候就会报错需要把stm32有多少个引脚F10xR.LIB加入工程中,具体位置在…\Keil\ARM\RV31\LIB\ST\stm32有多少个引脚F10xR.LIB
其中连接外部中断的引脚需要设置为输入状态,而连接LED的引脚需要设置为输出状态初始化PE.2是为了使得按键的另外一端输出低电平。GPIO中的函数在stm32有多少个引脚f10x_gpio.cΦ
由于GPIO并不是专用的中断引脚,因此在用GPIO来触发外部中断的时候需要设置将GPIO相应的引脚和中断线连接起来具体代码如下:
stm32有多少个引腳不像C51单片机那样,可以用过interrupt关键字来定义中断响应函数stm32有多少个引脚的中断响应函数接口存在中断向量表中,是由启动代码给出的默认的中断响应函数在stm32有多少个引脚f10x_it.c中。因此我们需要把这个文件加入到工程中来
在这个文件中,我们发现很多函数都是只有一个函數名,并没有函数体我们找到EXTI2_IRQHandler()这个函数,这就是EXTI2中断响应的函数我的目标是将LED灯点亮,所以函数体其实很简单:
由于EXTI5-9是共用一个中断響应函数因此所有的EXTI5 – EXTI9的响应函数都写在这个里面。
main函数前是函数声明main函数函数体中都是调用初始化配置函数,然后进入死循环等待中断响应。
专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。
在画PCB时每一个GND脚都必须接地,不论内部是否连在一起像这样超大规模的集成电蕗往往都要引出多个VCC和GND的,因内部电路功耗较大通常内部是分成几个电路模块的,每一个电路各自引出VCC和GND这样来实现分流。
因此每┅个ⅤCC,GND脚都要在PCB上连接上不能空着。
你对这个回答的评价是
内部互联的,我拿万用表测出来的
你对这个回答的评价是