STM32库函数的学习6——jlink调试整理

            这里整理一下,虽然一直在用SWD的模式调试自己的函数,不过还是要再学习一下,是否有别的遗漏。

        有关PA13、PA14、PA15、PB3、PB4的5个管脚就再深入整理一遍。添加一个正点原子的表格,

        

        第一个状态,复位以后的状态,因为stm32默认的复位以后这5个管脚是进入JTAG状态的。所以5个管脚都不能作为I/O使用。

        第二个状态,将PB4变成I/O口使用,(nJTRST是仿真器调试时的JTAG对内核的调试复位信号,一般用于信号调试,建议不要用作他用。)这个管脚原先就是调试用的,JTAG也可以下载程序。

        第三个状态,将JTAG关闭了,没有关闭SWD,我一直使用就是这个,如果I/O不够的话我就更换了单片机,所以PA13、PA14我一直是在设计电路的时候保留的,专门给下载程序跟调试程序用。

        第四个状态,就是将JTAG跟SWJ一起关闭。全部I/O都可以使用,JTAG跟SWJ就不能下载了,如果要下载程序,我记得用ST-LINK来下载。

        对这些进行函数库设置用到的函数:

        JTAG/SWD模式设置库函数  (在文件stm32f10x_gpio.c中): void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)//这个就是我们需要设置的函数。

       下面是函数声明文件,函数位于stm32f10x_gpio.h中196-198三行,也就是我们设置用到的设置函数。

         #define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100)  /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */这是第二个状态
        #define GPIO_Remap_SWJ_JTAGDisable  ((uint32_t)0x00300200)  /*!< JTAG-DP Disabled and SW-DP Enabled */这是第三个状态
        #define GPIO_Remap_SWJ_Disable      ((uint32_t)0x00300400)  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */这是第四个状态。

        有关JTAG跟SWD的管脚定义我们可以根据需要来使用接口,下面放出正点原子的接线图:

        我下载跟调试程序使用到的SWJ的4根线,就使用的7跟9两管脚跟VCC+GND。

        软件仿真:

        第一次知道呢,一直以来我都是使用的外接线路板的仿真,这里可以使用软件本身进行仿真。这里我就直接将正点原子的复制过来了,虽然可以跟着视频做,不过防止忘掉,也顺便推给大家。

        软件仿真虽然并不准确,硬件仿真才准确,但是对于没有线路板跟成品板等来说这个很有用呢。毕竟可以学习到很多东西,只有去实际使用的时候,再进行细部的调整。

       在开始软件仿真之前,先检查一下配置是不是正确,在 IDE 里面点击 ,确定 Target 选项卡内容如图 3.4.1.1 所示(主要检查芯片型号和晶振频率,其他的一般默认就可以):这里补充一下,晶振的频率,我之前只知道默认(12MHz)从来没改过(8MHz),然后后面指导的前辈不知道我有这个问题,就没讲到这里,所以对后面程序里面用到的延时函数才会出现错误,要求不高的函数是没问题的,但是如果要求精确的时间,这里计时的准确很重要。

        
3.4.1.1 Target 选项卡
        确认了芯片以及外部晶振频率(8.0Mhz )之后 ,基本上就确定了 MDK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

esmember

感谢大家喜欢我遇到的问题分享。

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

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

打赏作者

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

抵扣说明:

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

余额充值