产品概述

  • SWD口被改怎么办?

    如果您的代码中不小心将SWD口对应的管脚功能设置为非SWD口,您需要:

    ● 用烧写器(不是CDK中的flash操作)将芯片代码擦除

    ● 换芯片

    为了避免在调试期间出现这样的误操作,我们建议您在代码启动时,加入2~3s的delay,以保证在重新上电后,CDK有足够的时间获得芯片的控制。

  • 如何改SWD口?

    某些芯片(如APT32F102x系列),支持多组SWD。芯片出厂时会选择其中之一作为默认SWD口。如果实际应用时,这组默认的SWD口需要用作其他功能,此时就需要更改芯片POR时的SWD口。


    更改的方式有两种。

    1、改写IO控制寄存器(CONLR/CONHR),将目标管脚的功能设为SWDIO和SWDCLK。设置完成后,SWD即刻转移到目标管脚上。

    2、改写USER OPTION的内容,这种更改将会改变芯片上电时默认的SWD口。


    下图为APT32F102x系列的USER OPTION配置值和SWD重映射端口的关系图:

    USER OPTION的设置方式有三种:

  • SWD上拉毛刺

    APT当前芯片(APT32F101,APT32F172)的SWD口在POR时都会出现200us~150ms的高电平。

    (APT32F102x系列、APT32S003是PA0.5和PA0.12)


    这个高电平不是管脚的输出,而是为了兼容测试模式,POR后持续了一段时间的上拉状态。

    如果这个状态影响到了实际应用,可以参考的解决方案是加下拉电阻。


    注:内部上拉电阻在40Kohm左右,可以根据应用加适当的下拉电阻(如1Kohm)。

  • 如何调整中断优先级?

    默认的驱动代码中,

    1. 所有中断具有相同的优先级(最高优先级0)

    2. 中断嵌套功能是使能的

    所以当一个系统开启多个中断之后,这些中断之间可能会互相嵌套。这样一来,一些对时序敏感的中断执行就会出现和预料结果不一样的情况。比如一些通信模块和touch同时开启中断,一旦通信模块中断处理时被touch的中断嵌套,就可能导致通信失败。


    在这样的应用场景下,需要调高关键模块的中断优先级,或者调低次要模块的中断优先级。可以通过修改NVIC中的IPR寄存器实现。具体代码根据驱动版本不同,


    ● 可能在apt32fxxx_ck801.c中

    ● 也可能在core_801.h中