stm32输入捕获脚的默认管脚与重定义重映射管脚
- 格式:pdf
- 大小:42.00 KB
- 文档页数:1
STM32单片机的重映射与地址映射的使用方法及步骤重映射STM32中对于一些端口的外设已经被其他引脚所使用,这是就需要用端口重映射来解决了,很方便。
以USART1为例重映射的步骤为:打开重映射时钟和USART重映射后的I/O口引脚时钟,RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);I/O口重映射开启。
GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);配制重映射引脚,这里只需配置重映射后的I/O,原来的不需要去配置。
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_A F_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_I N_FLOATING;GPIO_Init(GPIOB,12345678这样就可以了,很简单。
地址映射对于地址映射是在查重映射时发现的,感觉ST的库很机智,就记录下来。
首先看一下M3 存储器映射我们的操作就在这512MB的地址进行。
在LED灯的程序中,存在宏定义:#defineGPIOC_BASE(APB2PERIPH_BASE+0x1000)#defineAPB2PERIPH_BASE (PERIPH_BASE+0x10000)#definePERIPH_BASE((uint32_t)0x40000000)123。
STM32的功能引脚重映射和复用功能STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能,本文对一些在使用引脚重映射时所遇到的有关问题加以说明。
我们知道每个内置外设都有若干个输入输出引脚,一般这些引脚的输出脚位都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的脚位外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的脚位。
下面是STM32F103xC中有关USART3引脚的摘要片段;从这里可以看出,USART3_TX的默认引出脚是PB10,USART3_RX的默认引出脚是PB11;但经过重映射后,可以变更USART3_TX的引出脚为PD8,变更USART3_RX的引出脚为PD9。
STM32中的很多内置外设都具有重映射的功能,比如USART、定时器、CAN、SPI、I2C等,详细请看STM32参考手册(RM0008)和STM32数据手册。
有些模块(内置外设)的重映射功能还可以有多种选择,下面是RM0008上有关USART3输入输出引脚的重映射功能表:从这个表中可以看出,USART3的TX和RX引脚默认的引出脚位是PB10和PB11,根据配置位的设置,可以重映射到PC10和PC11,还可以重映射到PD8和PD9。
一个模块的功能引脚不管是从默认的脚位引出还是从重映射的脚位引出,都要通过GPIO端口模块实现,相应的GPIO端口必须配置为输入(对应模块的输入功能,如USART的RX)或复用输出(对应模块的输出功能,如USART的TX),对于输出引脚,可以按照需要配置为推挽复用输出或开漏复用输出。
上图是STM32的GPIO端口模块,使用复用功能时的配置。
从图中可以看出,配置为复用输出时,该端口对应的GPIO输出功能将不起作用。
例如当配置PB10对应的引脚为复用输出功能时,操作PB10对应的输出寄存器将不影响引脚上的信号。
STM32端口复用和端口重映射?什么是端口复用重映射?对于(单片机)而言,GPIO引脚配置是最基本的,也是最重要的,因为所有的((信号))输入和(控制)输出都是通过这些配置起作用的。
这里就不得不提到单片机的复用功能AF(Al(te)rnate Func(ti)on),这篇文章我们说一说复用功能。
(STM32)Fxx系列单片机的GPIO可以配置为浮空输入(input floating)、上拉输入(input pull-up)、下拉输入(input pull-down)、(模拟)输入((analog))、开漏输出(output open-drain)、推挽输出(ouput push-pull)、复用开漏输出(alternate function open-drain)、复用推挽输出(alternate function push-pull)等8种模式。
先说明一下开漏输出和推挽输出的区别。
STM32Fxx系列单片机的输出电路由两个MOS管,分别是P-MOS 和N-MOS。
在开漏输出模式下,P-MOS管不工作,只有N-MOS管工作。
若输入数据(寄存器)的值为0,则N-MOS导通,IO口输出低电平;若输出数据寄存器的值为1,则N-MOS截止;由于P-MOS不工作,此时IO口既不是高电平,也不是低电平,这种状态被称为高阻态。
STM32F1xx IO口基本结构在推挽输出模式下,若输出数据寄存器的值为0,则N-MOS导通,P-MOS截止,IO口输出低电平;若输出数据寄存器的值为1,则N-MOS截止,P-MOS导通,IO口输出高电平。
上面提到了STM32Fxx系列单片机还有复用开漏输出和复用推挽输出,它们和上面讲到的(通用)开漏输出和(普通)推挽输出有什么区别?这就涉及到引脚复用的功能。
使用过单片机的(工程师)都了解,STM32Fxx内部集成了很多的外设(控制器),比如USART、SPI、(CAN)等,这些外设控制器,也需要通过引脚与外设连接。
STM32部分重映射和完全重映射(查看数据⼿册)
数据⼿册如何查找对应的映射:
打开官⽹直接搜索STM32F可以看到数据⼿册,⾥⾯有关于,输⼊第6页的页码,点击9.3中的9.3x可打开对应的链接。
举例说明:
STM32中拥有重映射功能,可以使硬件电路的设计更加简洁⽅便,在配置GPIO_PinRemapConfig()函数时,发现⼊⼝参数有两种重映射,分为部分重映射(Partial Remap)和完全重映射(Full Remap),那么这两个有什么区别呢?
标题以TIM3为例
根据图⽚可以看到,TIM3的部分重映射和完全重映射对应的引脚是不同的,所以在配置选择部分重映射和完全重映射的时候要考虑⼀下。
重映射引脚分配图在哪
这⼀部分其实并不在STM32的数据⼿册中,⽽在STM32的官⽅⼿册的8.3节,⾥⾯有所有功能的引脚分配情况。
STM32功能引脚端口复用和重映射
在STM32系列微控制器中,每个引脚都有一个默认的功能。
通过端口复用,我们可以将一个引脚的默认功能改变为其他的功能。
每个引脚都有一个对应的功能选择字,可以通过设置这个字来实现不同的功能。
引脚的功能可以是GPIO输入输出、模拟输入输出、定时器输入输出、串行通信等等。
端口复用功能使我们可以在同一个引脚上实现多种不同功能的选择。
比如,一个IO引脚默认是用作GPIO输入输出的,可以通过端口复用将其改为定时器的输入或输出引脚,实现定时器功能。
在一些情况下,系统的引脚数量有限,无法满足需求,此时就可以使用引脚重映射来实现更多的功能。
引脚重映射是将一个引脚的默认功能映射到其他引脚上,可以实现多个引脚共享一个功能。
引脚重映射需要特定的硬件支持,不是所有引脚都支持重映射。
可以通过引脚映射寄存器来设置引脚重映射。
引脚重映射的功能让系统设计更加灵活和可扩展。
在一个引脚只能实现一个功能的情况下,通过重映射可以将多个引脚的功能映射到一个引脚上,实现多个功能的共享。
端口复用和重映射的具体实现方式和寄存器设置是根据不同型号的STM32微控制器而有所不同的。
在开发过程中,需要查阅相关的文档和手册,了解具体的端口复用和重映射的功能和设置方法。
总之,STM32微控制器的功能引脚可以通过端口复用和重映射实现多种不同的功能。
端口复用可以改变引脚的默认功能,而重映射可以实现多个引脚共享一个功能。
这些功能增强了系统的灵活性和可扩展性。
在实际
应用中,需要根据具体需求选择适当的引脚复用和重映射方式,以满足系统的需求。
一文看懂stm32的引脚的两种用途:GPIO和AFIOstm32的引脚有两种用途:GPIO(generalpurposeio)和AFIO (alternatefuncTIonio)对于一些引脚(视芯片而定),这两种用途都没有,如在64脚产品中,OSC_IN/OSC_OUT 与作为GPIO端口的PD0/PD1共用一样的引脚,而在100、144引脚产品中,这四个功能各有引脚与之对应,不互相冲突,所以OSC_IN/OSC_OUT既不作GPIO也不作AFIO,当然,这样的引脚不是讨论重点。
1、引脚的配置不论是作GPIO还是做AFIO,都要对引脚进行配置。
在固件库函数中,用GPIO_Init()函数对引脚进行配置,并不是说这个函数带了GPIO字样就是要当做GPIO来用,而是把它纳入GPIO的范畴来讨论。
所谓配置,就是引脚上的片上资源连接方式,如上拉电阻、密特触发等等。
理解了配置,也就能明白配置与模式的区别。
特别得,在下文中将会专门讨论一下输出配置中的推挽与开漏。
2、复用功能复用功能有两种:没有重映像、重映像(包括部分重映像、完全重映像),使用引脚用作AFIO功能,同样需要对其进行配置。
这三句话来自参考手册,但我对第一句和注意有疑问,第三节讲。
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。
输入配置则与GPIO 没有区别。
为什么输出模式有专门的复用模式而输入则没有呢。
因为输出是由芯片内部电路驱动的,必须选择这个驱动来自哪一个外设,是GPIO还是复用此管脚的其他外设,也就是选择该管脚在内部是与哪个外设相连的,不说明这个就会发生信号的错乱。
而输入则不同了,输入信号是由芯片外的信号驱动的,虽然该信号进入芯片内部后可能有不同的去向,但不需。
STM32功能引脚端口复用和重映射端口复用是指一个引脚可以同时用于不同的外设功能。
每个引脚都有一个默认的功能,但根据需要,可以将其配置为其他功能。
这样,同一个引脚可以在不同的时间用于不同的外设,从而实现更灵活的系统设计。
重映射是指将一个引脚的默认功能切换到另一个引脚。
这样可以实现更多的功能引脚的分配和灵活性。
在STM32系列微控制器中,端口复用和重映射功能是通过复用矩阵和AFIO寄存器来实现的。
复用矩阵是一个硬件单元,用于控制引脚的端口复用。
每个引脚可以配置为多达数个复用功能之一、通过配置相应的复用矩阵,可以选择所需的功能。
AFIO寄存器是配置引脚的重映射功能的控制寄存器。
通过设置相应的寄存器位,可以将一些引脚的默认功能重映射到另一个引脚,同时也可以取消重映射,恢复到默认功能。
引脚端口复用和重映射的具体步骤如下:首先,需要确定所需的引脚功能。
查阅相关的参考手册或数据手册,可以了解到每个引脚的默认功能以及所有可能的复用功能。
然后,根据需要配置复用矩阵。
复用矩阵通常是通过设置GPIO口模式寄存器来实现的。
配置复用矩阵时,需要注意以下几点:1.每个引脚只能选择一种功能,不能同时选择多种功能。
2.不同的引脚可能有不同的复用功能选项,需要确保所选择的功能是合适的。
3.复用功能是互斥的,即其中一个引脚的复用功能被选中后,其他引脚将失去该功能选项。
最后,如果需要进行重映射,可以通过配置AFIO寄存器来实现。
重映射功能通常是通过设置AFIO复用寄存器来完成的。
配置重映射时,需要注意以下几点:1.不是所有的引脚都支持重映射功能,需要查阅相关的参考手册或数据手册来确定。
2.每个引脚的重映射功能选项可能不同,需要确保所选择的选项是合适的。
3.需要小心使用重映射功能,确保不会影响其他外设的正常工作。
端口复用和重映射功能可以极大地增加STM32微控制器的灵活性。
通过合理地使用这些功能,可以最大限度地利用资源,实现更复杂和功能强大的系统设计。
STM32引脚列表中主功能,默认复用功能和重定义功能的区别STM32F103RCT6引脚功能及使用1 主功能就是STM32基本IO口,与外设没有连接的,我们可以直接输出或读入高低电平使用时采用要初始化GPIO结构体参数,并打开端口的时钟2 默认复用功能是与外设连接的IO口,单片机通过控制IO口控制外设。
使用时采用要初始化GPIO结构体参数,IO口的工作模式要更具STM32中文参考手册中,IO口复用功能的设置工作模式,设置时,与主功能的唯一区别就是IO口的工作模式的不同。
3 当我想把外设不连接到默认引脚上,那就根据“重定义功能”这一列来重新定义外设连接的IO口。
一般情况我们不会用到。
注意:一旦需要对AFIO寄存器配置时,一定要打开AFIO的时钟(一般在使用外部中断EXTI或外设引脚重定义时)--------------------- 转载----------------------------STM32F103RCT6引脚功能及使用说明:1) VBAT:VBAT给RTC和备份区域供电,目的是在VDD断电时保证相关区域的数据内容有效,一般连接到外部电池。
若不用此功能,可直接连接到VDD。
2) 供电方案:Ø每个VDD各接一个0.1uF陶瓷电容,VDD3需要再接一个4.7~10uF的钽电容;Ø VDDA:10nF陶瓷电容+1nF钽电容;ØVREF+:可接VDDA,也可接外部参考源,此时,需要接10nF陶瓷电容+1nF钽电容;3) PC13/PC14/PC15:内部连接了模拟开关,只能通过少量的电流,驱动能力不够(不能用于点亮LED),且不能同时使用,尽量不用。
4) 进入待机模式之后,PA0-WKUP引脚上的上升沿,作为待机模式唤醒条件。
5) USART:CTS/RTS/CK/TX/RX,一般只使用TX/RX引脚实现异步通信,加上CK可以实现同步通信,CTS/RTS是硬件流控引脚,一般不用。