Gavin3389 发表于 2021-9-18 09:49

【评测】资料下载和上电跑例程

本帖最后由 Gavin3389 于 2021-9-18 09:49 编辑

有幸拿到HC的开发板,对于学习和了解一款开发板和芯片来讲,我觉得最值得信赖的应该还是官网。对于有开发经验的人来说,或许下载个例程,移植个程序家常便饭,可对很多学生朋友或者刚入门的开发者来说,
找资料,不一定是件容易的事。
借此机会,多接触下HC的片子,毕竟现在国产替代和发展之声越来越强,
自己也算是一名初学者吧,和大家一起从查找资料学起,进行评测。

一、看看如何找到自己需要的资料当然是上官网了,官网做的还不错,http://www.hdsc.com.cn/Category83-1487
设计文件:我不知道是用什么画的,反正不是AD好在原理图转换成了PDF,自己慢慢对应,不成问题。开发工具用户手册:对开发板做了简单的介绍,引导入门使用。驱动库及样例:Template是空白的工程,为了用户自己开发,可以节省时间。(想的是真周到)ddl是官方的例程,很全面ddl_help是帮助文档,配合例程,做参考用
这里注意下ddl例程,我下载的是hc32f460_ddl_Rev2.1.0例程在example文件夹下

里面又是两个文件夹

看到这,直接看V2啊,版本高,是不是坑比较少?不要看你板子上有个版本标识,我的是V1.3所以,开始直接选择V2的我,尴尬了好久,还想,这引脚也不对啊?是不是难道要自己引线验证?后来发现,原来是自己搞错了。这里需要自行对应开发板。二、随便跑个例程看看找个简单的gpio前面的宏定义/* LED0 Port/Pin definition */
#defineLED0_PORT      (PortE)
#defineLED0_PIN         (Pin06)

/* LED1 Port/Pin definition */
#defineLED1_PORT      (PortA)
#defineLED1_PIN         (Pin07)

/* LED2 Port/Pin definition */
#defineLED2_PORT      (PortB)
#defineLED2_PIN         (Pin05)

/* LED3 Port/Pin definition */
#defineLED3_PORT      (PortB)
#defineLED3_PIN         (Pin09)

/* LED0~3 toggle definition */
#defineLED0_TOGGLE()    (PORT_Toggle(LED0_PORT, LED0_PIN))
#defineLED1_TOGGLE()    (PORT_Toggle(LED1_PORT, LED1_PIN))
#defineLED2_TOGGLE()    (PORT_Toggle(LED2_PORT, LED2_PIN))
#defineLED3_TOGGLE()    (PORT_Toggle(LED3_PORT, LED3_PIN))

#defineDLY_MS         (300ul)主函数int32_t main(void)
{
    stc_port_init_t stcPortInit;

    /* configuration structure initialization */
    MEM_ZERO_STRUCT(stcPortInit);

    stcPortInit.enPinMode = Pin_Mode_Out;
    stcPortInit.enExInt = Enable;
    stcPortInit.enPullUp = Enable;

    /* LED0 Port/Pin initialization */
    PORT_Init(LED0_PORT, LED0_PIN, &stcPortInit);

    /* LED1 Port/Pin initialization */
    PORT_Init(LED1_PORT, LED1_PIN, &stcPortInit);

    /* LED2 Port/Pin initialization */
    PORT_Init(LED2_PORT, LED2_PIN, &stcPortInit);

    /* LED3 Port/Pin initialization */
    PORT_Init(LED3_PORT, LED3_PIN, &stcPortInit);

    while(1)
    {
      LED0_TOGGLE();
      Ddl_Delay1ms(DLY_MS);
      LED1_TOGGLE();
      Ddl_Delay1ms(DLY_MS);
      LED2_TOGGLE();
      Ddl_Delay1ms(DLY_MS);
      LED3_TOGGLE();
      Ddl_Delay1ms(DLY_MS);
      /* de-init if necessary */
      //PORT_DeInit();
    };
}
程序运行的效果是
四个不同颜色的led的流水灯,非常漂亮。
有了官网资料,有了开发板,可以慢慢的跑例程,熟悉华大环境和风格了。单纯跑例程的话,也无所谓简单和复杂,关键是通过例程熟悉板子和配置。
三、吐槽一下,并且记录下踩的坑(亮点)官网的资料很全,比较好找,分类也清晰,能看出来,也在定期维护和更新。只是跑例程的话,很容易。但是说实话,官网的资料,针对的是有一定基础的用户,比如已经参加工作,有开发经验的人。是不是可以考虑,丰富下文件内容,把用户扩大,广大学生和初学者也包含进来,比如,1、在用户手册中,用实物照片替代丝印图进行资源说明2、开发环境的搭建,配置做些详细的讲解。3、对例程的设计思路,原理做些补充说明,让初学这快速的运用起来。其实,很多内容已经做的很好了,再做细致一些,会有一大批站在门槛边缘的人进来,之所以ST用的人多,有很大的原因是教程详细丰富,跟手把手教学差不多了。
再说下,踩的坑(亮点)就是dll_config文件,这个应该算是程序配置文件吧,既是坑,又是亮点。这个文件里,把每个外设,给设计了一个“开关”,初衷应该是打算裁剪用吧,类似于“文件系统”里的配置文件如果,你只是单纯的跑例程,很可能忽略这里,一看程序跑起来,乐呵呵半天。但是吧,要写一个自己的程序,就很可能入坑了,也许会遇到“函数未定义的”错误,折腾一圈,路径也包含了,头文件也引用了,为啥不行?原因也许就在这里,用每一个库函数的时候,都要把开关打开。例如GPIO需要让这个条件编译,成立。
小结下个人感受:总体来说,资料比较全,也比较容易找到有自己的风格。用户手册和配套的教程比较少,需要用户自己去理解。这个淘汰了一些虚假的喊学习口号的人,也挡住了一些真正想学,如不了门的人。最后感谢华大和21ic提供这次评测机会,后面会逐步跑一跑自己移植的程序,非常期待国产芯片的崛起和腾飞。




豌豆爹 发表于 2021-9-18 16:17

华大的开发板还可以申请吗

Gavin3389 发表于 2021-9-22 13:49

豌豆爹 发表于 2021-9-18 16:17
华大的开发板还可以申请吗

这个我还不清楚当前能不能,
关注下论坛活动,或者问问21官方

cyclefly 发表于 2021-9-23 15:50

我也是被这个开关挡了半天~~哈哈哈~~~

jheng 发表于 2021-9-23 19:14

楼主跑跑sdio的例程看,我没有跑通

重阳23333 发表于 2021-9-23 19:25

hello麻烦问下,开发板还有别的方式获得吗,可以买到最好?

Gavin3389 发表于 2021-9-24 09:25

jheng 发表于 2021-9-23 19:14
楼主跑跑sdio的例程看,我没有跑通

https://bbs.21ic.com/icview-3166014-1-1.html
临时跑了一个,不知道和你说的是不是一个,参考下

trucyw 发表于 2021-9-25 20:52

太幸运了吧,居然能拿到这个板
羡慕

木青峰 发表于 2021-12-31 14:49

页: [1]
查看完整版本: 【评测】资料下载和上电跑例程