Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2289028
  • 博文数量: 187
  • 博客积分: 1457
  • 博客等级: 上尉
  • 技术积分: 2423
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-13 09:41
个人简介

如需要绘制PCB,设计电路可以和我联系。sunhenu@163.com.

文章分类

全部博文(187)

文章存档

2017年(2)

2016年(2)

2015年(7)

2014年(13)

2013年(80)

2012年(83)

分类: 嵌入式

2014-10-28 16:39:05

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



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