[原创] 【小华工控新品HC32F448】07.使用XHCode基于HC32F448创建闪烁LED基础工程

xld0932   2024-2-4 14:25 楼主

1.概述

XHCode是小华半导体推出的一款协助用户配置生成XHSC MCU基础代码的软件工具,它包含了管脚和模块配置、时钟配置和工程配置3部分,今天来基于HC32F448系列MCU,使用XHCode创建一个闪烁LED的基础工程,来记录一下使用体验。

 

2.安装XHCode

从小华半导体官网上可以下载最新版本的XHCode工具,双击安装文件,根据提示进行安装,这个安装过程比较简单,如下所示:

1.png
2.png
3.png
4.png
5.png
6.png

 

3.创建闪烁LED工程

3.1.双击XHSC XHCode软件,在左上角型号的下拉菜单中选择HC32F448MCTI-LQFP80,如下所示:

7.png

 

3.2.管脚和模块配置界面:在左侧MCU引脚配置图中先配置一些基础配置,比如PA13\PA14配置为程序调试/烧录引脚、配置PC14/PC15为外部32.768晶振的输入端口、配置PH0/PH1为外部主晶振的输入端口;然后根据EV_F448_LQ80_Rev1.0开发板的原理图,将PA2配置为GPIO-Output输出模式,如下所示:

9.png

在配置GPIO时,发现现在还有少部分的外设无法配置,可能需要后面更新版本后才能配置吧;但对于GPIO来说,没有重命名Lable的功能,觉得有些不方便,将PA2添加一个LED的Lable,会显示更直观,更清楚不是么……

 

3.3.时钟配置界面:当选择HC32F448MCTI-LQFP80这颗芯片型号后,系统的时钟和总线频率配置大部分都是依据最大上限来配置的,个别没有达到上限的也是因为计算分频倍数的关系,同时满足不了多端的要求,就优先满足一边了,如下图所示:

8.png

在看这个时钟配置时,默认PLLSRC就是选用的XTAL,当在配置管脚和模块配置界面还没有配置时钟引脚时,这边就是这样的默认选择了,感觉管脚和模块配置界面与时钟配置界面的功能并没有联动起来,感觉有点功能欠缺的意思;另外就是在时钟配置界面上,对于频率的显示单位也没有统一起来,一部分单位是MHz,一部分的单位却是KHz,看上去有些杂乱。

 

3.4.工程配置界面:我们在工程名称中输入相应的工程名,选择工程IDE类型为MDK(这个工具支持KEIL MKD、IAR EWARM、Eclipse三个集成开发环境的工程生成),指定工程保存的位置以及驱动库(DDL)位置,先点击右上角的保存配置保存当前的工程,然后再点击右上角的生成代码,依据我们的工程配置生成相应的代码,如下所示:

10.png
14.png

需要注意的是,驱动库(DLL)位置不是指DLL下载存放的位置,当前这款工具还没有根据芯片型号自动下载对应驱动库程序的功能,而是需要我们提前下载好DLL驱动库,然后这边指定位置就是我们存放下载的DLL驱动库的位置:

 

3.5.生成的代码:我们发现生成的代码目录如下所示,有main和MDK两个文件夹,后面我才确认这边的main文件夹是多余的,因为MDK工程中的源程序,都是存放在MDK目录中的,所以这边需要原厂制作工具的再确认下:

19.png

 

4.编译工程

4.1.打开MDK目录下的LED.uvprojx工程文件,如下所示:

15.png

 

4.2.我们先想看一工程的配置,点击工具栏的配置按钮,在弹出配置窗口的Debug选项卡中确认使用的调试下载工具,然后再通过Utilities选项卡确认下载选项,如下所示:

16.png
17.png

我们需要将Reset and Run勾选上,这样我们在程序下载完成后,芯片就可以自动复位并运行了。

 

4.3.我们点击工具栏的工程编译按钮,编译结果发现有2处Error,对于官方示例程序,发现没有配置这2条语句的选项,所以就先屏蔽掉了,结果编译就顺利通过了:

18.png

自动生成的代码会产生编译错误实属不应该哈,大多数使用自动生成工具的来说,就是想快速的生产工程,对底层配置不想深究太多,出错后就不得不多花时间去检查了……

 

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 编辑
We are a team and we work as a team !

回复评论 (5)

可以把这个贴当做用XHCode创建一个闪烁LED的基础工程的教程啦

点赞  2024-2-5 07:46
引用: Jacktang 发表于 2024-2-5 07:46 可以把这个贴当做用XHCode创建一个闪烁LED的基础工程的教程啦

We are a team and we work as a team !
点赞  2024-2-5 09:09

从哪里下载呢?

点赞  2024-6-18 17:53

出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

点赞  2024-10-31 16:47
OK!!!
点赞  2024-11-1 08:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复