21小跑堂 发表于 2022-8-5 13:59

小华版的Cube:XHCode的beta版,邀您免费试用领好礼~

公布第一批获奖名单:

@xuxinhd   @2695877352   @zhxlx

后期将不定期更新获奖名单,本次获奖人员请等待活动结束后,统一发放礼品哦~


活动还未结束,小伙伴们可继续参加哈!

static/image/hrline/1.gif


简单介绍:XHCode是一款协助用户配置生成XHSC MCU基础代码的软件工具。主要具有以下几种功能:
★ 1.管脚和模块初始化配置: 选取管脚配置选项卡,用户可分别在管脚视图或模块树下对MCU的各个可配管脚进行功能配置。工具会保证管脚视图和模块树配置的统一性。用户在模块树下选取任一模块,可进行相应模块的初始化配置。
★ 2.   时钟配置: 选取时钟配置选项卡,用户可配置相应型号MCU的系统时钟和外设时钟。
★ 3.工程配置: 选取工程配置选项卡,用户可配置生成工程的名称,IDE(支持Keil, IAR和Eclipse),工程保存的位置。同时用户需在此界面配置指定相应型号MCU的驱动库(DDL)位置。
目前仅支持F460的主要模块初始化配置和代码生成,欢迎大家使用并积极反馈。


“XHSC XHCode Setup”已更新版本为V0.02,主要更新点:
1.生成代码,错误使用 stcPwmInit.u16CompareValue,DDL定义是 uint32_t u32CompareValue;
2.生成代码,中断出现INT_IRQn编译错误的问题
3.生成代码,将调试引脚设置成GPIO出现的debug报错问题

活动时间:2022年8月5日——9月5日

活动内容:
试用XHCode的beta版,并在本帖下方反馈使用体验,提出有建设性的帮助(不少于30字哦)

活动奖励:
对于优质的体验及建议回帖,送出由小华半导体提供的精美礼品一份哦~

2695877352 发表于 2022-8-5 14:43

用起来还可以,但是bug还是比较多的。
用的不习惯的地方,会把旧工程直接覆盖,自己写的代码都没有了
部分功能还没有实现,特别是时钟部分的配置,没有启动的时钟线也得配置,比较麻烦
生成的代码和函数有bug
比如,默认的中断号有时候没有,自己选一下,可能就有了
timea的生成和库内数据不一致,u32和u16,得自己换
库和之前的名称不一样,3.0的库帮助比较少

han0097 发表于 2022-8-5 14:49

好耶,终于看到国产的了。华大果然没让我失望。一直在用华大芯片。

han0097 发表于 2022-8-5 14:56

BUG 1 :       安装以后桌面没有,开始菜单没有。我竟然不知道如何打开。

han0097 发表于 2022-8-5 15:03

又安装一遍,在桌面创建一个快捷方式。仍然打不开。
Win 7 x64系统,旗舰版

molin2050 发表于 2022-8-5 15:07

时钟配置功能不错,比较清楚,就是io配置,只是io初始化,并没有打开模块。有了这个工具,画板都有参考,很方便,比看手册强。

suncat0504 发表于 2022-8-5 15:21

路要一步步走,饭要一口口吃。敢于迈出第一步,不止勇气,加油!

WoodData 发表于 2022-8-5 17:50

不错不错,可以体验一下

zhxlx 发表于 2022-8-6 12:19

1、gpio配置的时候不能设置管脚名称,很不方便
2、点击管教配置的时候,弹出菜单太长了,看的眼花,而且鼠标移动后,菜单容易消失,使用体验不太好
3、模块树不错
4、保存设置必须要选择文件吗?不方便啊
5、源代码中,INT_IRQn产生错误,配置中已经有向量号了,为啥没有配置出来呢?
第一次使用,暂时就这么多问题,先去吃午饭了。

gaon2 发表于 2022-8-6 13:55

终于看到国产的了。华大果然没让我失望

zhxlx 发表于 2022-8-6 15:29

使用xhcode生成代码,PA15用作gpio,发现不能调用GPIO_REG_Unlock(),否则GPIO_SetDebugPort会引发unlock的assert

/* PA15 set to GPIO-Output */
    GPIO_REG_Unlock();
    GPIO_SetDebugPort(GPIO_PIN_TDI, DISABLE);
    GPIO_REG_Lock();
    (void)GPIO_StructInit(&stcGpioInit);
    stcGpioInit.u16PinDir = PIN_DIR_OUT;
    stcGpioInit.u16PinAttr = PIN_ATTR_DIGITAL;
    (void)GPIO_Init(GPIO_PORT_A, GPIO_PIN_15, &stcGpioInit);

zhxlx 发表于 2022-8-6 15:40

没有用户代码的保护功能,太伤了,重新配置生成代码,以前的改动都没了
/* USER CODE BEGIN PV */

/* USER CODE END PV */

zhxlx 发表于 2022-8-6 15:41

本帖最后由 zhxlx 于 2022-8-6 16:21 编辑

zhxlx 发表于 2022-8-6 12:19
5、源代码中,INT_IRQn产生错误,配置中已经有向量号了,为啥没有配置出来呢?
stcIrq.enIntSrc = INT_SRC_TMR0_2_CMP_A;
    stcIrq.enIRQn = INT_IRQn;
    stcIrq.pfnCallback = &INT_SRC_TMR0_2_CMP_A_IrqCallback;
    (void)INTC_IrqSignIn(&stcIrq);
    NVIC_ClearPendingIRQ(INT_IRQn);
    NVIC_SetPriority(INT_IRQn, DDL_IRQ_PRIO_15);
    NVIC_EnableIRQ(INT_IRQn);

zhxlx 发表于 2022-8-6 16:19

本帖最后由 zhxlx 于 2022-8-6 16:20 编辑

错误使用 stcPwmInit.u16CompareValue = 0xFFFFU;定义是 uint32_t u32CompareValue;


/**
* @brief TMRA PWM configuration structure.
*/
typedef struct {
    uint32_t u32CompareValue;               /*!< Specifies compare value of the TMRA channel.
                                                 This parameter can be a number between:
                                                 0UL and 0xFFFFFFFFUL for TimerA1 and TimerA2 of HC32F472.
                                                 0UL and 0xFFFFUL for TimerA3/4/5/6 of HC32F472 and all TimerA units of other MCUs. */
    uint16_t u16StartPolarity;            /*!< Specifies the polarity when the counter start counting.
                                                 This parameter can be a value of @ref TMRA_PWM_Polarity
                                                 NOTE: CAN NOT be specified as TMRA_PWM_LOW or TMRA_PWM_HIGH when
                                                       sw_count.u16ClockDiv of @ref stc_tmra_init_t is NOT specified
                                                       as @ref TMRA_CLK_DIV1 */
    uint16_t u16StopPolarity;               /*!< Specifies the polarity when the counter stop counting.
                                                 This parameter can be a value of @ref TMRA_PWM_Polarity */
    uint16_t u16CompareMatchPolarity;       /*!< Specifies the polarity when the counter matches the compare register.
                                                 This parameter can be a value of @ref TMRA_PWM_Polarity */
    uint16_t u16PeriodMatchPolarity;      /*!< Specifies the polarity when the counter matches the period register.
                                                 This parameter can be a value of @ref TMRA_PWM_Polarity */
} stc_tmra_pwm_init_t;

/************************* Configure TMRA_2_2 CMP ***************************/
    /* Config PWM output */
    (void)TMRA_PWM_StructInit(&stcPwmInit);
    stcPwmInit.u16CompareValue = 0xFFFFU;
    stcPwmInit.u16StartPolarity = TMRA_PWM_HOLD;
    stcPwmInit.u16StopPolarity = TMRA_PWM_LOW;
    stcPwmInit.u16CompareMatchPolarity = TMRA_PWM_LOW;
    stcPwmInit.u16PeriodMatchPolarity = TMRA_PWM_LOW;
    (void)TMRA_PWM_Init(CM_TMRA_2, TMRA_CH2, &stcPwmInit);

keydongle2 发表于 2022-8-9 10:11

提3个问题点:
(1)时钟树配置,现在不支持文本框输入最终SYSCLK的数值,自动配置中间的分配参数,如果加这个就方便了;
(2)生成工程之后,没有弹出是否打开工程的对话框;
(3)DMA模块单独出来了,和st的不一样,DMA和外设模块配置放在一起,估计会更方便。

yongruru 发表于 2022-8-9 11:18

本帖最后由 yongruru 于 2022-8-9 11:19 编辑

用起来很不错,没有卡顿和崩溃。提几个小问题和建议。
1图标不够美观切遇到深色背景很不清晰,可以考虑自带底色取代透明。
2生成代码完成没有提示
3CAN配置,没有速率显示
4设置用户代码,段防止被覆盖。
5提供更多功能模块和芯片系列支持

还有,最大的问题是没有F460的板子,这个问题在我不在你。


袁胜富 发表于 2022-8-9 21:31

总体有点意思了,优点缺点说一下吧;
1.优点是可以更好的配置系统时钟,但是缺点时钟有一个最大频率可以根据最大频率自动分配各个外设时钟频率这点没有,如果有那就更好了;
2.优点是更好的配置系统外设,缺点是每次更新代码都会弄丢之前的写好的代码段,如果做有代码段保护机制就好了,用户代码将会得到更好的保护。
3.不能设置GPIO的标签,GPIO输出不能配置为开漏模式,推挽模式输出,不能设置为下拉,上拉模式输入。不能更好的管理代码;
4.例如串口基本的中断配置,停止位,校验位,数据为,波特率参数配置要有,不然一点都不方便;等等。
希望后期越来越好吧。时间是个好东西。

emanages 发表于 2022-8-10 07:50

测试了一下,主要的有以下几点:1.生成了工程后在重新修改XHcode里面的配置后会重新覆盖用户自己写的代码2.配置后能否可以用户直接定义管脚的名称,比如生成了一个led灯的控制引脚,用户可以自己重定义以下,会提升不少哦。3.配置生成有中断的时候,能否可以选择中断入口,并且能直接添加回调函数的定义,直接生成一个回调函数,供用户的编写。4.能否添加一个配置一个功能生成单独的C和H文件,不要全都放在mian文件里面。这样会比较清晰。目前就这些。比较好的地方有了这个XHCOD会加快不少开发进度。顶一个!!

molin2050 发表于 2022-8-10 21:27

本帖最后由 molin2050 于 2022-8-10 22:33 编辑

* PA15 set to GPIO-Output */
    GPIO_REG_Unlock();
    GPIO_SetDebugPort(GPIO_PIN_TDI, DISABLE);
    GPIO_REG_Lock();
    (void)GPIO_StructInit(&stcGpioInit);
    stcGpioInit.u16PinDir = PIN_DIR_OUT;
    stcGpioInit.u16PinAttr = PIN_ATTR_DIGITAL;
    (void)GPIO_Init(GPIO_PORT_A, GPIO_PIN_15, &stcGpioInit);
使用XHCode把pa15当gpio,跑完这里sw调试就卡住了2.2版本sdk是没问题的

wzx1994 发表于 2022-8-11 10:16

大致看了一下,界面还是挺友好的。配置起来也简单。还没看生成的工程,不知道生成的工程代码怎么样,有时间再看看
页: [1] 2
查看完整版本: 小华版的Cube:XHCode的beta版,邀您免费试用领好礼~