所谓好记性不如烂笔头,将工作学习中的经历记录在这里方便我回头查看。今天在调试STM32的时候出现了一个现象,JTAG的两个引脚与SPI3复用。刚好使用到这两个脚来操作SD卡,在网上查了很多资料,多数是说使用
RCC_APB2PeriphClockCmd(
RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE );
和GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);这两句。可是在调试过程中发现PB3根本就不会变化,一直处于低电平。后来发现这个BUG在STM32的中文参考手册上29.17.2记载。因此只需在函数上方定义
#define DBG
MCU_CR (*((volatile unsigned long *)0xE0042004))
和在GPIO_PinRemapConfig函数下方定义DBGMCU_CR &= 0xFFFFFFDF;就会释放PB3