FAQ
小技巧
请善用 搜索功能 ,搜索快捷键 Ctrl + F 。
KEIL 4 补丁包 和 KEIL5 补丁包 通用么?
不通用,请安装KEIL 对应版本的对应补丁包。
KEIL 5 补丁包安装路径不对怎么办?
电脑曾经安装过多个KEIL 5,没有正常删除,所以注册表有多个路径。请全部删除后,重新安装一个唯一版本。
Holtek e-Link32 Pro 需要再单独安装驱动么?
开发环境安装时自带驱动,不需要另外安装驱动。
HT32 支持 J-Link J-FLASH 吗?
支持,请安装 J-Link 补丁包, J-Link 补丁包在 资料包 的补丁文件夹中。
为什么创建/移动工程后,部分文件出现黄色感叹号,编译提示 No such file or directory ?
为什么在工程内添加文件后,编译提示 No such file or directory ?
添加文件在工程的
Include Path外,将添加文件的路径,添加到工程的Include Path内。![]()
Include Path
如何更换固件库内创建工程的HT32型号?
请参考 工程创建失败处理 。
因涉及固件库版本&工程更新,迁移方法变更,更建议使用 HT32_CodeConfig 重新生成工程,再进行代码移植。
使用 KEIL 配置向导 和 x.c 里面直接修改值有什么区别?
没有差别, KEIL 配置向导 中修改的参数,其实也是修改
x.c文档里面的参数。
配置 启动文件 或 初始化文件 后,为什么编译会出现 #error 提示?
为了防止配置参数设置错误,会有编译器错误提醒用户配置错误,可以根据错误提示来排查错误的配置。
如图就是PLL的CK_VCO设置的参数不在范围内,按照范围设置参数即可。
![]()
#error 提示
为什么使用HT32 开发板 调试程序正常,但是相同程序下载到新做的PCBA上无法运行?
进入仿真模式,对程序进行 debug ,如发现程序运行卡在 初始化文件 中此函数(如图),实际为等待 HSE 启动成功。
![]()
等待 HSE 启动成功
使用官方范例工程,时钟配置默认使用 HSE ,如新做的PCBA没有设计晶振,就会卡在等待 HSE 启动的函数里面。
在 初始化文件 中,将 时钟源 从 HSE 切换到内部 HSI 即可。
![]()
切换到内部 HSI
进入仿真模式,对程序进行 debug ,如发现程序运行卡其他 启动文件 或 初始化文件 ,请联系HOLTEK FAE 进行解决。
如可进入仿真模式可正常运行,但是直接运行无法运行,请检查 HT32 BOOT 引脚配置,上电瞬间 BOOT 应该为高电平,详细请参考 HT32_BOOT 。
如何修改 HT32 范例工程 HSE 的外部晶振频率?
可在 IDE 全局宏定义进行修改,如使用 KEIL5 将 HSE 参数修改为 16MHz, 则加入
,HSE_VALUE=16000000。![]()
HSE 修改频率(KEIL5)
在程序中,如何得知现在HT32的主时钟频率(主频)是多少MHz?
首先,应保证CKCU配置和实际硬件相匹配,如使用 HSE 则要保证 HSE 晶振频率和硬件对应,请参考上一条FAQ。
可在程序中使用
SystemCoreClock变量,获得当前主时钟频率(主频),单位Hz。![]()
HSE 修改参数(KEIL5)
在进行Debug时,进入Debug模式就会提示断开SWD通讯?
程序打开了 WDT 功能,进入 Debug 模式时,造成 WDT 溢出造成程序从头开始运行。Debug时关闭 WDT 功能即可。
程序运行时, SWD 调试接口复用为其他功能,造成 SWD 调试通讯失败。建议Debug时先屏蔽 SWD 复用功能 功能即可。
程序运行时,进入了 深度睡眠(DeepSleep)/暂停模式(Stop) ,造成 SWD 失能,调试通讯失败。建议Debug时先屏蔽 Stop 或 DeepSleep 模式功能即可。
在进行Debug时,设置断点或暂停时,程序会经常从头开始跑?
因为打开了 WDT 功能,在 Debug 断点或暂停时, WDT 溢出造成程序从头开始运行。Debug时关闭 WDT 功能即可。
为什么在 KEIL 点击 下载 或 调试 时,会弹出窗口 Error:Flash Download failed Could not load file ?
错误提示
Could not load file,原因是 KEIL 找不到下载的 x.hex 档案,请检查工程是否正常编译并生成了 x.hex 档案。![]()
Error:Flash Download failed Could not load file
为什么在 KEIL 点击 下载 或 调试 时,会弹出窗口 RDDI-DAP Error ?
窗口提示
RDDI-DAP Error, 原因是 Debugger调试器 没有找到MCU的 SWD 调试接口,请检查以下原因:
MCU没有供电或没有运行,请检查MCU供电是否正常( Debugger调试器 默认不对外供电);
请检查 HT32 以下硬件状态是否正常:
VDD/VDDIO/AVDD/VBAT/VLCD pin 电压应在正常工作电压之内。
LDO pin 电压应为1.5V,且外接电容材质和规格符合规格。
nRST pin 电平应为高电平(VDD)。
BOOT pin 电平应为为高电平(VDD/VDDIO)。
Debugger调试器 和 MCU SWD 调试接口接线错误或接触不良,请检查SWD接线,缩短连接线,并使用万用表测量是否导通。
MCU SWD 调试接口失能,程序复用为 GPIO 或 进入了 深度睡眠(DeepSleep)/暂停模式(Stop) , 仿真时复位一次 或 全片擦除一次 再进行调试。
Debugger调试器 配置错误,如选择应
SW调试接口,并降低调试接口速度到500KHz, 详细请参考 IDE Debugger配置如以上全部不行,请更换MCU再尝试,可能为MCU已经损坏或焊接短路问题。
![]()
RDDI-DAP Error
为什么在 KEIL 点击 下载 或 调试 时,会弹出窗口 Device could not be powered up ?
同上一个问题解决方法。
![]()
Device could not be powered up
为什么在 KEIL 打开 Debug 时,发现没有检测到 SW Device ?
同上一个问题解决方法。
![]()
SW Device failed
为什么在 KEIL 点击 下载 或 调试 时,会弹出窗口 Error:Flash Download failed -"Cortex-Mxx" ?
窗口提示
Error:Flash Download failed -"Cortex-Mxx", 并再提示No Algorithm found for原因为 KEIL5
Programming Algorithm未配置,请参考 Programming Algorithm配置![]()
Flash Download failed
为什么在 KEIL 点击 下载 或 调试 时,之前可以正常烧录并运行,但是现在再点击会提示错误?
HT32 FLASH 最后一页为 Option区域 ,如HT32 FLASH操作 误写 Option区域 则会造成 HT32 FLASH 写保护,造成烧录错误,可通过 全片擦除一次 来解锁保护。
请检查程序中 FLASH 操作是否有误操作到 Option区域 。
请检查之前烧录时,是否有 锁IC 操作。
IAP_AP 工程中,如果 IAP程序 大小有变动,需要做哪些修改?
需要修改固件关联的
linker.lin文件,和 程序关联的ht32_board_config.h文件,改为现在 IAP程序 空间大小。请参考 范例说明 : IAP_AP 。
IAP_AP 工程中,如何确认程序大小有没有超出 MCU FLASH 大小?
IAP_AP 工程中,如何在仿真中,查看 AP区域 的数据?
可在仿真模式下,使用 Memory 窗口,查看MCU内部FLASH数据,找到0x0000_1000地址(工程默认AP程序开始地址),此数据和AP.bin数据应一致。
![]()
Memory 窗口 AP区域 数据
为什么编译工程后无法生成 x.bin/x.hex ?
请检查工程编译是否有错,如果编译没有程序问题,请注意 固件库 文件路径不能有 中文 、 空格 和 特殊符号
如何查看程序使用的 ROM/RAM 情况?
需对程序先进行编译,且编译通过。
在编译生成的 x.map 文件,可以查到ROM/RAM使用情况。
如使用范例工程, x.map 文件地址
...\MDK_ARMv5\HT32\52352\List\HT32.map![]()
ROM/RAM
如何查看程序使用的 栈 Stack 情况?
需对程序先进行编译,且编译通过。
在编译生成的 x.htm 文件,可以查到 栈
Stack使用情况。如使用范例工程, x.map 文件地址
...\MDK_ARMv5\HT32\52352\Obj\HT32.html![]()
Stack
警告
因中断函数发生不可知,无法完全计算出 栈 Stack 情况,建议以此基础增大 栈 Stack 空间大小。
HT32 EMC 性能差,如何优化?
请注意 HT32 最小系统Layout是否按照PCB Layout要求进行,详细参考 PCB Layout 。
HT32 GPIO 走线如有 串接电阻 ,如无特殊要求,请靠近 GPIO 端,可增强抗干扰能力。
HT32 未使用的 GPIO 处于 浮空状态(Floating),导致抗干扰能力弱,请配置为 固定电平 状态,建议配置为 输出低电平。
HT32 受干扰的 GPIO 可以配置输出能力,其默认为 4mA 普通驱动能力,可设置为 16mA 强驱动能力,增强抗干扰能力。
如以上方法均无法解决,请考虑 Holtek FAE 技术支持。
HT32 通讯接口(UART/SPI/I2C….)容易受到外部干扰,如何优化?
软件:HT32 GPIO 可以配置输出能力,其默认为 4mA 普通驱动能力,可设置为 16mA 强驱动能力,增强抗干扰能力。
硬件:PCB Layout 时,应避免频率较高的信号走线互相平行,增加串扰。应尽量走线垂直,减少平行长度。
硬件:通讯接口 增加 串联电阻 减少高速信号的反射; 增加 小电容去耦(e.g. 100pf) 减少高频干扰; 增加 上拉电阻 增大回路电流。
如以上方法均无法解决,请考虑 Holtek FAE 技术支持。















