关于STM32中解除调试端口用作普通IO口

我自己设计的平衡车板子中,OLED要用到PB4和PB5,但是我之前在写代码的时候没有注意到PB4上电默认的是调试端口,结果下载程序后,OLED一直没有显示信息,这让我一度怀疑差点奔溃的认为是不是我的板子出现了短路现象,经过万用表的测试发现没有出现短路情况,这又让我很懵逼不知道问题在哪,为了解决是不是我的板子出现了问题,我就用了面包板来搭建最简单的电路(一个32板子,一个OLED),并且OLED还是用PB4和PB5,我原本以为面包板搭建的电路OLED应该会显示一些东西,结果居然没有!

这时我想起了会不会是引脚的问题,当我去看引脚定义表才恍然大悟。。。。原来PB4上电后就是默认为调试端口,所以要想把它当作普通IO口,就需要额外的一些操作

这里可以看江科大STM32入门教程的6-4节的第30分钟,他详细的讲了关于如何解除调试端口用作普通IO口的说明(他真的太牛逼了,我哭死)

其实额外的操作就是两个,一个开启AFIO时钟,另一个是GPIO_PinRemapConfig函数即端口重映射

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);

	GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
 	GPIO_Init(GPIOB, &GPIO_InitStructure);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
 	GPIO_Init(GPIOB, &GPIO_InitStructure);

总之,在以后设计PCB的时候不是随便就用哪些端口,真的要好好看看引脚定义表,避免不必要的麻烦出现

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值