都是stm32的JTAG引脚惹的祸

转载请注明出处:http://blog.csdn.net/qq_26093511/article/category/6094215


最近在调试08接口的LED显示屏,使用的是自己做的STM32板子。


调试的时候,突然发现显示屏,怎么都不亮,我就开始怀疑人生了。。。。。。。。


难道是程序问题?

吧啦吧啦的查询时序图,修改修改,加延时。。。。然而并没有什么卵用!唉,都让我怀疑是不是引脚接错了,反复测量后发现引脚确实是对的


难道是硬件问题?

我把不需要的程序全部注释掉!  

只让STM32相应的08接口的IO口 全部输出高电平,测量结果正常。

只让STM32相应的08接口的IO口 全部输出低电平,结果发现PA15这个引脚输出的是高电平。输出有问题啊!


最后查询STM32f10x系列的手册,结果发现STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。

oh ,no ! 折磨我两天的问题,竟然是JTAG惹的祸!


为了充分利用MCU I/O口的资源,把这些端口设置为普通I/O口。

具体方法如下:


//开启AFIO 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);


注意:AFIO 时钟未设置,GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE) 这句不会生效,也就是要先设置时钟,才能配置相应端口


最后,感谢郑老师的指导!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alen.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值