新疆时时彩三开奖结果走势图

STM32 IO引脚复用器和映射

STM32F4有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。这部分知识在《STM32F4中文参考手册》第七章和芯片数据手册有详细的讲解哪些GPIO管脚是可以复用为哪些内置外设。 对于本小节知识,STM32F4中文参考手册讲解比较详细,我们同样会从中抽取重要的知识点罗列出来。同时,我们会以串口使用为例给大家讲解具体的引脚复用的配置。 STM32F4系列微控制器IO引脚通过一个复用器连接到内置外设或模块。该复用器一次只允许一个外设的复用功能(AF)连接到对应的IO口。这样可以确保共用同一个IO引脚的外设之间不会发生冲突。 每个IO引脚都有一个复用器,该复用器采用16路复用功能输入(AF0到AF15),可通过GPIOx_AFRL(针对引脚0-7)和GPIOx_AFRH(针对引脚8-15)寄存器对这些输入进行配置,每四位控制一路复用: 1)完成复位后,所有IO都会连接到系统的复用功能0(AF0)。 2)外设的复用功能映射到AF1到AF13。 3)Cortex-M4 EVENTOUT映射到AF15。

阅读全文

STM32F4时钟树概述

众所周知,时钟系统是CPU的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32F4的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么STM32要有多个时钟源呢? 因为首先STM32本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及RTC只需要几十k的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的MCU一般都是采取多时钟源的方法来解决这些问题。 首先让我们来看看STM32F4的时钟系统图:

阅读全文

STM32F4串口简介

串口作为MCU的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。现在基本上所有的MCU都会带有串口,STM32自然也不例外。 STM32F4的串口资源相当丰富的,功能也相当强劲。ALIENTEK探索者STM32F4开发板所使用的STM32F407ZGT6最多可提供6路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持LIN、支持调制解调器操作、智能卡协议和IrDA SIR ENDEC规范、具有DMA等。 5.3节对串口有过简单的介绍,大家看这个实验的时候记得翻过去看看。接下来我们将主要从库函数操作层面结合寄存器的描述,告诉你如何设置串口,以达到我们最基本的通信功能。本章,我们将实现利用串口1不停的打印信息到电脑上,同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑。探索者STM32F4开发板板载了1个USB串口和2个RS232串口,我们本章介绍的是通过USB串口和电脑通信。 在4.4.章节端口复用功能已经讲解过,对于复用功能的IO,我们首先要使能GPIO时钟,然后使能相应的外设时钟,同时要把GPIO模式设置为复用。这些准备工作做完之后,剩下的当然是串口参数的初始化设置,包括波特率,停止位等等参数。在设置完成只能接下来就是使能串口,这很容易理解。同时,如果我们开启了串口的中断,当然要初始化NVIC设置中断优先级别,最后编写中断服务函数。 串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能,GPIO时钟使能。 2) 设置引脚复用器映射:调用GPIO_PinAFConfig函数。 3) GPIO初始化设置:要设置模式为复用功能。 4) 串口参数初始化:设置波特率,字长,奇偶校验等参数。 5) 开启中断并且初始化NVIC,使能中断(如果需要开启中断才需要这个步骤)。 6) 使能串口。 7) 编写中断处理函数:函数名格式为USARTxIRQHandler(x对应串口号)。 下面,我们就简单介绍下这几个与串口基本配置直接相关的几个固件库函数。这些函数和定义主要分布在stm32f4xx_usart.h和stm32f4xx_usart.c文件中。

阅读全文

STM32F4外部中断简介

STM32F4的IO口在第六章有详细介绍,而中断管理分组管理在前面也有详细的阐述。这里我们将介绍STM32F4外部IO口的中断功能,通过中断的功能,达到第八章实验的效果,即:通过板载的4个按键,控制板载的两个LED的亮灭以及蜂鸣器的发声。 这章的代码主要分布在固件库的stm32f4xx_exti.h和stm32f4xx_exti.c文件中。 这里我们首先讲解STM32F4 IO口中断的一些基础概念。STM32F4的每个IO都可以作为外部中断的中断输入口,这点也是STM32F4的强大之处。STM32F407的中断控制器支持22个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F407的22个外部中断为: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。 EXTI线18:连接到USB OTG FS唤醒事件。 EXTI线19:连接到以太网唤醒事件。 EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。 EXTI线21:连接到RTC入侵和时间戳事件。 EXTI线22:连接到RTC唤醒事件。 从上面可以看出,STM32F4供IO口使用的中断线只有16个,但是STM32F4的IO口却远远不止16个,那么STM32F4是怎么把16个中断线和IO口一一对应起来的呢?于是STM32就这样设计,GPIO的管教GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G,H,I)分别对应中断线0~15。这样每个中断线对应了最多9个IO口,以线0为例:它对应了GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0,GPIOH.0,GPIOI.0。而中断线每次只能连接到1个IO口上,这样就需要通过配置来决定对应的中断线配置到哪个GPIO上了。</p>

阅读全文

 
新疆时时彩三开奖结果走势图
3d豹子属于组三么 河南11选5出号走势图 福建11选5技巧稳赚 10元可提现的棋牌 新疆十一选五前三遗漏 新疆11选5开奖5结果 北京11选5 金博棋牌游戏大厅下载 澳洲幸运10计划软件 广东11选5杀号软件安卓