zoukankan      html  css  js  c++  java
  • 都是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) 这句不会生效,也就是要先设置时钟,才能配置相应端口


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

  • 相关阅读:
    DAY-4 Linux基础及常用命令(1)
    DAY-3 计算机基础之网络
    DAY-2 计算机基础之操作系统
    DAY-1 计算机基础
    梅花作品欣赏
    简洁大气网址(国外)跟设计大学的案例很像
    animate css3 应用的借鉴,一个同事写的JS
    漂亮的素材
    几个不错的素材站
    正式开始我的技术生涯
  • 原文地址:https://www.cnblogs.com/alan666/p/8311988.html
Copyright © 2011-2022 走看看