1.概述
XHCode是小华半导体推出的一款协助用户配置生成XHSC MCU基础代码的软件工具,它包含了管脚和模块配置、时钟配置和工程配置3部分,今天来基于HC32F448系列MCU,使用XHCode创建一个闪烁LED的基础工程,来记录一下使用体验。
2.安装XHCode
从小华半导体官网上可以下载最新版本的XHCode工具,双击安装文件,根据提示进行安装,这个安装过程比较简单,如下所示:
3.创建闪烁LED工程
3.1.双击XHSC XHCode软件,在左上角型号的下拉菜单中选择HC32F448MCTI-LQFP80,如下所示:
3.2.管脚和模块配置界面:在左侧MCU引脚配置图中先配置一些基础配置,比如PA13\PA14配置为程序调试/烧录引脚、配置PC14/PC15为外部32.768晶振的输入端口、配置PH0/PH1为外部主晶振的输入端口;然后根据EV_F448_LQ80_Rev1.0开发板的原理图,将PA2配置为GPIO-Output输出模式,如下所示:
在配置GPIO时,发现现在还有少部分的外设无法配置,可能需要后面更新版本后才能配置吧;但对于GPIO来说,没有重命名Lable的功能,觉得有些不方便,将PA2添加一个LED的Lable,会显示更直观,更清楚不是么……
3.3.时钟配置界面:当选择HC32F448MCTI-LQFP80这颗芯片型号后,系统的时钟和总线频率配置大部分都是依据最大上限来配置的,个别没有达到上限的也是因为计算分频倍数的关系,同时满足不了多端的要求,就优先满足一边了,如下图所示:
在看这个时钟配置时,默认PLLSRC就是选用的XTAL,当在配置管脚和模块配置界面还没有配置时钟引脚时,这边就是这样的默认选择了,感觉管脚和模块配置界面与时钟配置界面的功能并没有联动起来,感觉有点功能欠缺的意思;另外就是在时钟配置界面上,对于频率的显示单位也没有统一起来,一部分单位是MHz,一部分的单位却是KHz,看上去有些杂乱。
3.4.工程配置界面:我们在工程名称中输入相应的工程名,选择工程IDE类型为MDK(这个工具支持KEIL MKD、IAR EWARM、Eclipse三个集成开发环境的工程生成),指定工程保存的位置以及驱动库(DDL)位置,先点击右上角的保存配置保存当前的工程,然后再点击右上角的生成代码,依据我们的工程配置生成相应的代码,如下所示:
需要注意的是,驱动库(DLL)位置不是指DLL下载存放的位置,当前这款工具还没有根据芯片型号自动下载对应驱动库程序的功能,而是需要我们提前下载好DLL驱动库,然后这边指定位置就是我们存放下载的DLL驱动库的位置:
3.5.生成的代码:我们发现生成的代码目录如下所示,有main和MDK两个文件夹,后面我才确认这边的main文件夹是多余的,因为MDK工程中的源程序,都是存放在MDK目录中的,所以这边需要原厂制作工具的再确认下:
4.编译工程
4.1.打开MDK目录下的LED.uvprojx工程文件,如下所示:
4.2.我们先想看一工程的配置,点击工具栏的配置按钮,在弹出配置窗口的Debug选项卡中确认使用的调试下载工具,然后再通过Utilities选项卡确认下载选项,如下所示:
我们需要将Reset and Run勾选上,这样我们在程序下载完成后,芯片就可以自动复位并运行了。
4.3.我们点击工具栏的工程编译按钮,编译结果发现有2处Error,对于官方示例程序,发现没有配置这2条语句的选项,所以就先屏蔽掉了,结果编译就顺利通过了:
自动生成的代码会产生编译错误实属不应该哈,大多数使用自动生成工具的来说,就是想快速的生产工程,对底层配置不想深究太多,出错后就不得不多花时间去检查了……
5.应用程序
在编译无误的工程上,我们就可以添加自己的应用程序了,因为闪烁LED的功能比较简单,我们就直接在main函数的for循环里添加了,每间隔500ms,LED显示状态翻转一次:
/**
* @brief Main function of the project
* @param None
* @retval int32_t return value, if needed
*/
int32_t main(void)
{
/* Register write unprotected for some required peripherals. */
LL_PERIPH_WE(LL_PERIPH_ALL);
//Clock Config
App_ClkCfg();
//Port Config
App_PortCfg();
/* Register write protected for some required peripherals. */
LL_PERIPH_WP(LL_PERIPH_ALL);
for (;;) {
GPIO_TogglePins(GPIO_PORT_A, GPIO_PIN_02);
DDL_DelayMS(500);
}
}
最后编译无误,下载运行OK哦!
6.总结
XHCode是一款用来便于开发的软件,理应做到配置功能齐全、生成代码无误,要做到这一点,XHCode还有很多工作需要去做,去测试、去完善、去适配;希望这款工具越做越好,尽早的可以给开发工程师带来便利!
本帖最后由 xld0932 于 2024-2-4 14:27 编辑出HC32F005C6UA
⚫ 48MHz Cortex-M0+ 32 位 CPU 平台
⚫ HC32L130/HC32L136 系列具有灵活的功耗管理系统,超低功耗性能
– 0.5μA @ 3V深度 休眠 模式 所有时钟关闭上电复位有效, IO状态保持, IO中断有效,所有寄存器, RAM和 CPU 数据保存状态时的功耗
– 0.9μA @3V深度 休眠 模式 + RTC工作
– 7μA @32.768KHz低速工作模式 CPU 和外设运行,从 Flash运行程序
– 35μA/MHz@3V@24MHz休眠 模式 CPU 停止,外设运行,主时钟运行
– 130μA/MHz@3V@24MHz工作模式 CPU和外设运行,从 Flash运行程序
– 4μS超低功耗唤醒时间 使模式切换更加灵活高效,系统反应更为敏捷
⚫ 64K字节 Flash存储器,具有擦写保护功能
⚫ 8K字节 RAM存储器,附带奇偶校验,增强系统的稳定性
⚫ 通用 I/O 引脚 (56IO/64pin, 40IO/48pin,26IO/32pin, 23IO/28pin)
⚫ 时钟、晶振
– 外部高速晶振 4 ~ 32MHz
– 外部低速晶振 32.768KHz
– 内部高速时钟 4/8/16/22.12/24MHz
– 内部低速时钟 32.8/38.4KHz
– PLL时钟 8 ~ 48MHz
– 硬件支持内外时钟校准和监控
⚫ 定时器 /计数器
– 3个 1通道互补通用 16位定时器
– 1个 3通道互补输出 16位定时器
– 1个低功耗 16位定时器
– 3个高性能 16位定时器 /计数器,支持 PWM 互补,死区保护功能
– 1个可编程 16位定时器 PCA,支持捕获比较, PWM输出
– 1个超低功耗脉冲计数器 PCNT 具备低功耗模式下自动定时唤醒功能,最大定时达1024秒
– 1个 20位可编程看门狗电路,内建专用10KHz振荡器提供 WDT 计数
⚫ 通讯接口
– 2路 UART标准通讯接口
– 2路 LPUART低功耗通讯接口,深度 休眠 模式下可工作
– 2路 SPI 标准通讯接口
– 2路 I2C 标准通讯接口
⚫ 蜂鸣器频率发生器,支持互补输出
⚫ 硬件万年历 RTC 模块
⚫ 硬件 CRC-16/32 模块
⚫ 硬件 32位除法器
⚫ AES-128 硬件协处理器
⚫ TRNG 真 随机数发生器
⚫ 2通道 DMAC
⚫ 4*40 / 6*38 / 8*36 LCD驱动
⚫ 10字节 ID 号
⚫ 12位 1Msps采样的高速高精度 SARADC,内置运放,可测量外部微弱信号
⚫ 集成 3个多功能 运算放大器
⚫ 集成 6位 DAC 和可编程基准输入的 2路 VC
⚫ 集成低电压侦测器,可配置 16阶比较电 压 ,可监控端口电压以及电源电压
⚫ SWD 调试解决方案,提供全功能调试器
⚫ 工作条件: :-40 ~ 85 1.8 ~ 5.5V
⚫ 封装形式: QFN32/48,LQFP64/48,TSSOP28