STM32_管脚 部分映射和全映射

发布者:JFET最新更新时间:2022-04-27 来源: eefocus关键字:STM32  管脚  映射 手机看文章 扫描二维码
随时随地手机看文章

在管脚映射的时候一定要记得开启映射的时钟RCC_APB2Periph_AFIO


如下


RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_PD01, ENABLE);    

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//全部释放

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);

GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);


映射了PD0,PD1(外部时钟管脚,默认为时钟输入)。


STM32中关于PD0和PD1的映射有如下说明:


The pins number 2 and 3 in the VFQFPN36 package, and 5 and 6 in the LQFP48 and LQFP64 packages are configured as

OSC_IN/OSC_OUT after reset, however the functionality of PD0 and PD1 can be remapped by software on these pins. For the LQFP100 package, PD0 and PD1 are available by default, so there is no need for remapping. For more details, refer to the Alternate function I/O and debug configuration section in the STM32F10xxx reference manual.

The use of PD0 and PD1 in output mode is limited as they can only be used at 50 MHz in output mode.


切记:PD0和PD1使用输出模式的时候被限制在只能用50MHz使用,否则无法输出高低电平。实测验证过,,,,

 

GPIO_Remap_SWJ_Disable是将JTAG所有的管脚全映射为GPIO了。


至于部分映射TIM3和全映射TIM2,等其他的映射可查看寄存器AFIO_MAPR的说明。如下图

我的程序使用的是PB4输出定时器3 通道1的PWM,故此处为GPIO_PartialRemap_TIM3部分重映射。


又如下图,

#define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100) 

#define GPIO_Remap_SWJ_JTAGDisable  ((uint32_t)0x00300200)

#define GPIO_Remap_SWJ_Disable      ((uint32_t)0x00300400) 


可以通过选择GPIO_Remap_SWJ_NoJTRST     ,将PB4的IO功能使用,就是释放了NJTRST的功能。


当选择GPIO_Remap_SWJ_Disable,所有相关的调试口均释放成了IO口。此时通过Jlink的SW方式下载时,无法下载程序,


解决方法:

1.需要复位下载(可将复位管脚对地短路,在点击下载后,释放复位管脚即可下载程序,复位时,管脚为默认功能)


2.将BOOT0拉高使用串口下载。


 


注意:

(1)TIM2_CH1 和 TIM2_ETR 共用一个引脚,但不能同时使用(因此在此使用这样的标记: TIM2_CH1_ETR)


(2)当不使用主振荡器HSE时(系统运行于内部的8MHz阻容振荡器), PD0和PD1可以映像到OSC_IN和OSC_OUT引脚。此功能只能适用于36、 48和64引脚的封装(PD0和PD1出现在100脚和144脚的封装上,不必重映像)。


关键字:STM32  管脚  映射 引用地址:STM32_管脚 部分映射和全映射

上一篇:STM32串口之空闲中断
下一篇:stm32_汇编(STR和LDR)

推荐阅读最新更新时间:2024-11-11 10:34

stm32 嵌套向量中断控制器NVIC
嵌套向量中断控制器(NVIC)和处理器核的接口紧密相连,可以实现低延迟的中断处理和高效地处理晚到的中断。 嵌套向量中断控制器管理着包括内核异常等中断 NVIC 相关的函数包含在 misc.c 文件中 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct) void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset) void NVIC_SystemLPConfig(uint8_t LowPower
[单片机]
<font color='red'>stm32</font> 嵌套向量中断控制器NVIC
stm32 i2c eeprom 24C02
电路图 举例 #define i2c_scl PBout(10) #define i2c_sda PBout(11) #define i2c_ack PBin(11) void I2C_init() { GPIO_InitTypeDef gpio10 = { GPIO_Pin_10, GPIO_Speed_50MHz, GPIO_Mode_Out_PP }; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //时钟使能 GPIO_Init(GPIOB, &gpio10); } void I2
[单片机]
<font color='red'>stm32</font> i2c eeprom 24C02
STM32学习笔记(一)之存储器的地址分配
首先我们需要知道存储器地址映射定义:ARM Cortex-M3系列的处理器,采用存储器与I/O设备(外设)统一编址的方式,将部分存储器地址范围用于外设,这种通过存储器地址访问外设的方式,称之为存储器地址映射 对于32位处理器,可寻址范围是2的32次,即4GB寻址范围;ARM将这4G空间从低地址到高地址依次划分为代码区( Code)、 片上SRAM区( SRAM)、片上外设( Peripheral) 、片外RAM( External RAM)、片外外设( External Device)和系统级( System level) ARM公司只是大概的规定了存储器空间的映射,允许各芯片厂商在指定范围内自行定义和使用这些存储空间,未
[单片机]
<font color='red'>STM32</font>学习笔记(一)之存储器的地址分配
stm32位带操作有什么用
STM32位带操作是一种在ARM Cortex-M微控制器中使用的特殊技术,它允许同时处理多个位,并且可以提高代码效率和性能。在这篇文章中,我将详细介绍STM32位带操作的原理、用途以及如何使用它。 一、STM32位带操作的原理 位带别名区 在STM32微控制器中,每个外设寄存器都有32位,其中每个位都可以被独立访问。位带操作使用了ARM Cortex-M中的位带别名区(Bit Band Alias Region)技术,该区域位于内存映射地址空间的末尾部分,用于访问特定位的寄存器。位带别名区通过对特定位进行编址,使得每个位都拥有一个独立的内存地址。 位带操作的映射 位带操作利用了位带别名区的映射关系,将寄存器位的操作映射到了单
[单片机]
stm32驱动NOR Flash 之MX25L51245G(64MB)
MX25L51245G 支持SPI的MODE0/MODE3,一般都选择mode3 #define FLASH_SECTOR_SIZE (4*1024) #define FLASH_PAGE_SIZE 256 引脚定义 /* * SPI1 * @SCK : PA5 * @MISO : PA6 * @MOSI : PA7 * * @CS : PA0 */ 读写接口 static u8 SPI_Write(u8 byte) { u32 timeout = 0xFFFF; while(!(SPI1- SR & SPI_I2S_FLAG_TXE)) { if(--timeout == 0) { printf(
[单片机]
STM32复习笔记(三)端口复用、映射和中断优先级
一、端口复用: STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。 例如串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。 -----------------------------------------端口复用配置过程------------------------------------------ 端口复用配置过程: 以PA9,PA10配置为串口1为例 GPIO端口时钟使能。 RCC_APB2Peri
[单片机]
<font color='red'>STM32</font>复习笔记(三)端口复用、<font color='red'>映射</font>和中断优先级
使能STM32的串口后有时发送0x00的问题
int main() { init_usart(); printf( hellon ); } 在发送完“hellon”后,会自动发送一个 0x00 ; 而 int main() { init_usart(); printf( hellon ); while(1); } 在发送完“hellon”后,不会自动发送一个 0x00 在此记录一个现象,原因不详
[单片机]
STM32 DAC知识讲解
简介:STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的DAC。DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC工作在 12 位模式时,数据可以设置成左对齐或右对齐。 DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。 STM32的DAC模块主要特点有: ①2个DAC转换器:每个转换器对应1个输出通道 ②8位或者12位单调输出 ③12位模式下数据左对齐或者右对齐 ④同步更新功能
[单片机]

推荐帖子

配置sqlce连接管理器里面的虚拟目录后 在设备上输入http://服务器名/虚拟目录名/sscesa20.dll之后显示找不到页面
问题如上创建虚拟目录时使用的是匿名访问或Basicathentication两种方式接着下一步到如图所示c:\\33.bmp这里就不知道要不要选中了我是没有选HTTPpemissions也只选中了只读和目录浏览有漏洞或者错误的地方请大家帮忙指出来谢谢了配置sqlce连接管理器里面的虚拟目录后在设备上输入http://服务器名/虚拟目录名/sscesa20.dll之后显示找不到页面看不到图片……,郁闷ING阿不会吧我看得到的阿补充:我用的是V
e729 嵌入式系统
PCB存储方式为什么这么重要呢
日常生活中,我们平常都会去商场或者大型超市去购物,我们会看到多数产品都会有保质期,这些产品的保质期都是由生产商提供,标注在限时使用的产品上。在保质期内,产品的生产者直接则对该产品质量符合有关标准或明示担保的质量条件负责,销售商即可放心销售这些产品,消费者也可以安全使用。那么,现在作为专注PCB行业多年的小编想跟大家来讲讲PCB的保存要点。电路板不比我们所购买的其它产品,它与空气和水接触都有严格要求,首先PCB板真空不能损坏,包装的时候都要在箱子周围覆上一层气泡膜,因为气泡膜的吸水性比
沃德天2586 PCB设计
关于ARM增加FLASH容量及数量问题
我们现在将原来用1个512M的FLASH更改为用2个1G的FLASH,请问我在软件里要做什么修改呀。。我用的是WINCE5的关于ARM增加FLASH容量及数量问题这个要看硬件连线了或许对软件透明什么都不用改这问题有点麻烦,要自己一步一步学习,不是任何人都可以搞定的。高手别人搞定了也不会给你一步一步说,并且关系内容比较多。。。硬件连线是一样的,,只是片选使用了另外一组而已,,,,,有没有比较祥细的文章写过呀软件怎么改要先看你硬件怎么连的lz肯定是用的nandflash吧,
fengpiao065 ARM技术
退耦电容 - 我们都在使用,但这是为什么呢?
作者:TI专家BruceTrump翻译:TI信号链工程师RickeyXiong(熊尧)每个人都知道运放应该使用靠近运放供电管脚的退耦电容,对吗?但为什么要使用这个退耦电容呢?举个例子,如果没有合适的退耦,运放会更容易产生振荡。了解使用退耦电容的原因能够增加你对这个问题的理解和认知。电源抑制比是运放抑制供电发生变化的能力。如图1所示,在低频段,运放的电源抑制比是非常高的,但是随着频率的增加,电源抑制比会减小。在高频段,较小的电源抑制比可能会导致运放振荡。我们经常认为,外部的
qwqwqw2088 模拟与混合信号
ZYNQ(FPGA)与DSP之间SRIO通信实现案例
ZYNQ与DSP之间通信例程ZYNQ与DSP之间SRIO通信例程位置ZYNQ例程保存在资料盘中的Demo\ZYNQ\PL\srio_gen2_0_ex文件夹下。DSP例程保存在资料盘中的Demo\DSP\XQ_SRIO_x4LANE_5Gbps文件夹下。
CoreKernel DSP 与 ARM 处理器
请问为什么.out文件无法下载到板子上?
在workbench3.0中建立了一个downloadableKernelModuleProject(一个简单的helloworld程序),在vxworks6.xsimulator里面运行通过了,也显示了helloworld。可是连接8548板子后,选择连接vxworks6.xtargetserver却去下载不进去,显示错误:Possiblycausedby:WTXLoaderError:Incorrectobjectmoduleformat初学者一只,请
jus_ly 嵌入式系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved