今天调试PB3,用户普通IO,调试半天,还以为PCB问题,问题找了许久也没找到。有时候人麻木了,思考问题的思路就受限了,习惯性以为配置一下IO就可以用了,没有注意到PB3为JTAG共用IO,默认为JTAG状态,需要禁用JTAG才能使用。
DelayMS(2000);
//建议延时一下,否则导致无法jtag、sw连接CPU,处理起来比较麻烦哦。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//必须执行这句
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
//根据需要选择GPIO_Remap_SWJ_Disable还是GPIO_Remap_SWJ_JTAGDisable
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructur
PB4同理
本文记录了作者在调试STM32的PB3 IO过程中遇到的问题及解决方法。由于PB3默认作为JTAG IO使用,导致普通IO功能无法正常工作。通过禁用JTAG并重新配置GPIO,最终解决了这一问题。
1326

被折叠的 条评论
为什么被折叠?



