首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

因为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口了。
继承事业,薪火相传
返回列表