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。第二个,请各位帮我分析分析,怎么回事。谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
lycreturn
1楼-- · 2019-08-29 11:47
1.确实是需要开启AFIO才能重映射,出现那个现象就是因为PA15本来外部有个上拉电阻,但是即使没有复用成功,PA15仍然可以读取IO, 但如果用作输出,那就会出问题了
2.应该是仿真显示的问题,正确值应该0x02000000;
zhanming1990
2楼-- · 2019-08-29 17:24
 精彩回答 2  元偷偷看……
zhanming1990
3楼-- · 2019-08-29 21:29
lycreturn 发表于 2017-3-23 23:05
1.确实是需要开启AFIO才能重映射,出现那个现象就是因为PA15本来外部有个上拉电阻,但是即使没有复用成功, ...

我烧录寄存器版本的程序,调试,也是显示0x04000000。能确定是仿真显示的问题吗?
lycreturn
4楼-- · 2019-08-29 21:40
zhanming1990 发表于 2017-3-24 15:41
我烧录寄存器版本的程序,调试,也是显示0x04000000。能确定是仿真显示的问题吗?

是的  实际写入0x02000000, 但显示的是0x04000000

一周热门 更多>