使用芯片:STM32F103RCT 开发环境:MDK5.1.2 调试方法:JTAG+SWD 遇到问题:PB3端口作为输入,一直读取到的是低电平,不管外部输入是不是高电平,都一直读取到的是低电平。 问题原因: 因为在使用SWD调试的时候要取消trace跟踪调试,Pb3端口还是没法正常读取到数据。 查找资料发现,别人发贴说是以为默认使用的JTAG调试方式或者是SWD方式占用了PB3端口,所以 没办法使用。类似的问题在其他论坛出现过 最后发现解决办法就是: 在程序初始化的时候要加上这两句话来让PB3 PA15 PB3 能正常使用。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); DBGMCU->CR &= ~((uint32_t)1<<5); AFIO->MAPR = (AFIO->MAPR & ~((uint32_t)0x7 << 24)) | (2 << 24); /* PA15 PB3 PB4 */ 加上这两句话之后,PB3作为IO口输入数据就正常。 |
问题原因
不带这样复制的吧
哦,记录一下这问题怎么解决的