本帖最后由 zhanming1990 于 2017-3-23 16:22 编辑
大家好,本人最近新入手一块mini开发板,正在学习当中。第一次发帖,如有问题,请多多指教。谢谢
最近在学习原子哥的教程,按键实验中(库函数版本),发下以下疑问:
1,在void KEY_Init(void)初始化函数中,并没有开启复用时钟RCC_APB2Periph_AFIO。
但程序烧写到板子中能正常运行。我又尝试注销掉GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE),
,重新编译烧写后,依然能正常运行。
自己理解:在我调试分析中,发现PA15默认状态就是带上下拉的输入
,硬件上又带了上拉电阻,
,刚好跟我们关闭JTAG功能后,设置PA15为带上拉输入一样,所以歪打正着,程序能正常运行。
2,在没有开启复用时钟时候调试,监测AFIO,没有任何变化。
。于是我先在程序中开启RCC_APB2Periph_AFIO,
,编译烧录后,重新调试。又发现疑问。在程序执行完GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE)函数后,AFIO->MAPR寄存器的值为0x04000000。
,可资料中介绍的为
SWJ_CFG[2:0]为010: JTAG-DP Disabled and SW-DP Enabled。所以AFIO->MAPR寄存器的值为0x02000000才对吧??
总结:对于第一个问题:我觉得还是要开启复用时钟RCC_APB2Periph_AFIO。第二个,请各位帮我分析分析,怎么回事
。谢谢
2.应该是仿真显示的问题,正确值应该0x02000000;
我烧录寄存器版本的程序,调试,也是显示0x04000000。能确定是仿真显示的问题吗?
是的 实际写入0x02000000, 但显示的是0x04000000
一周热门 更多>