在线时间25 小时
UID3302483
ST金币0
蝴蝶豆0
注册时间2016-7-31
初级会员
- 最后登录
- 2016-12-23
|
发表于 2016-12-1 14:11:19
|
显示全部楼层
a0a.1 0b0c
帖子有点久了~~不过今天刚好遇到这个问题并解决了,,希望对之后遇到该问题的朋友有所帮助吧
我采用cube结合keil进行开发的,,
我的解决方法:
在stm32f1xx_hal_msp.c文件中,添加了DBGMCU->CR &= ~((uint32_t)1<<5);解决了问题,按STM32彻底释放PB3做为普通IO口使用的说法,可能是由于D版Keil或者JLINK的原因出现了BUG,使得STM32打开了异步跟踪,占用PB3,将异步跟踪关掉PB3就可以正常正常使用。
常规开发的话,可采用下述方式:参照【特殊的PB3】设置stm32 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 */
cube中的配置及项目中所需添加内容如下所示:
|
|