在管脚映射的时候一定要记得开启映射的时钟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_汇编(STR和LDR)
推荐阅读最新更新时间:2024-11-11 10:34
推荐帖子
- 配置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 嵌入式系统
设计资源 培训 开发板 精华推荐
- LTC3404,外部同步 3.1V/600mA 降压稳压器
- AD9518-1A/PCBZ,AD9518-1A 评估板,2500 MHz 极低噪声 PLL 时钟合成器
- RT9285C 微型封装、高性能、二极管嵌入式白光 LED 驱动器的典型应用电路
- DC2005A,使用 LTC3624EDD 高效同步降压稳压器和超低静态电流的演示板
- 使用 ROHM Semiconductor 的 BD5250 的参考设计
- RHF1201评估板
- LT3470ETS8 12V 降压转换器的典型应用电路
- 低成本2.5KV USB电源隔离方案(原理图+BOM+gerber等)
- 3D打印机 扩容mos模块
- #第五届立创电子设计大赛#直流可调电源