Chinaunix首页 | 论坛 | 博客
  • 博客访问: 831053
  • 博文数量: 281
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:45
个人简介

邮箱:zhuimengcanyang@163.com 痴爱嵌入式技术的蜗牛

文章分类
文章存档

2020年(1)

2018年(1)

2017年(56)

2016年(72)

2015年(151)

分类: 嵌入式

2017-04-14 20:07:47

因为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口了。



阅读(669) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~