STM32 JTAG接口PB3PB4配置为IO口使用问题

15880阅读 0评论2014-10-28 sunhenu
分类:嵌入式

因为IO口紧张,在原理绘制期间就利用了PB3和PB4,但是在调试程序的时候才发现,PB3和PB4控制不了。
查看了一下芯片手册,发现芯片在上电后,居然默认是JTAG接口,怪自己粗心了。

JTAG和SWD接口对照如下图。


我们可以看到PB3,PB4,PA15都被利用为JTAG接口中,SWD接口只要PA13,PA14。
所以为了重新使用PB3,PB4,我关闭JTAG功能,
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);  //开启AFIO时钟
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //禁止JTAG功能
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;     
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
 GPIO_Init(GPIOB, &GPIO_InitStructure);     
 GPIO_ResetBits(GPIOB,GPIO_Pin_All);

然后就可以利用PB3和PB4作为普通IO口了。



上一篇:NMOS管实现3.3V和5V转换电路的输入信号速率问题分析
下一篇:在ucos系统上使用USART1串口中断函数处理串口数据