STM32F103mini开发板按键实验中,关闭JTAG问题

2019-08-29 08:47发布

本帖最后由 zhanming1990 于 2017-3-23 16:22 编辑

大家好,本人最近新入手一块mini开发板,正在学习当中。第一次发帖,如有问题,请多多指教。谢谢

最近在学习原子哥的教程,按键实验中(库函数版本),发下以下疑问:
      1,在void KEY_Init(void)初始化函数中,并没有开启复用时钟RCC_APB2Periph_AFIO。 1.png 但程序烧写到板子中能正常运行。我又尝试注销掉GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE), 2.png ,重新编译烧写后,依然能正常运行。
自己理解:在我调试分析中,发现PA15默认状态就是带上下拉的输入 3.png ,硬件上又带了上拉电阻, 4.jpg ,刚好跟我们关闭JTAG功能后,设置PA15为带上拉输入一样,所以歪打正着,程序能正常运行。

2,在没有开启复用时钟时候调试,监测AFIO,没有任何变化。 5.png 。于是我先在程序中开启RCC_APB2Periph_AFIO, 6.png ,编译烧录后,重新调试。又发现疑问。在程序执行完GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE)函数后,AFIO->MAPR寄存器的值为0x04000000。 7.png ,可资料中介绍的为SWJ_CFG[2:0]为010: JTAG-DP Disabled and SW-DP Enabled。所以AFIO->MAPR寄存器的值为0x02000000才对吧??


总结:对于第一个问题:我觉得还是要开启复用时钟RCC_APB2Periph_AFIO。第二个,请各位帮我分析分析,怎么回事。谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。