打印
[其他]

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

[复制链接]
44296|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LED, ni, pi, TI, IO
本帖最后由 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 */
#define  LED0_PORT        (PortE)
#define  LED0_PIN         (Pin06)

/* LED1 Port/Pin definition */
#define  LED1_PORT        (PortA)
#define  LED1_PIN         (Pin07)

/* LED2 Port/Pin definition */
#define  LED2_PORT        (PortB)
#define  LED2_PIN         (Pin05)

/* LED3 Port/Pin definition */
#define  LED3_PORT        (PortB)
#define  LED3_PIN         (Pin09)

/* LED0~3 toggle definition */
#define  LED0_TOGGLE()    (PORT_Toggle(LED0_PORT, LED0_PIN))
#define  LED1_TOGGLE()    (PORT_Toggle(LED1_PORT, LED1_PIN))
#define  LED2_TOGGLE()    (PORT_Toggle(LED2_PORT, LED2_PIN))
#define  LED3_TOGGLE()    (PORT_Toggle(LED3_PORT, LED3_PIN))

#define  DLY_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 | 只看该作者
我也是被这个开关挡了半天~~哈哈哈~~~

使用特权

评论回复
5
jheng| | 2021-9-23 19:14 | 只看该作者
楼主跑跑sdio的例程看,我没有跑通

使用特权

评论回复
6
重阳23333| | 2021-9-23 19:25 | 只看该作者
hello  麻烦问下,开发板还有别的方式获得吗,可以买到最好?

使用特权

评论回复
7
Gavin3389|  楼主 | 2021-9-24 09:25 | 只看该作者
jheng 发表于 2021-9-23 19:14
楼主跑跑sdio的例程看,我没有跑通

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

使用特权

评论回复
8
trucyw| | 2021-9-25 20:52 | 只看该作者
太幸运了吧,居然能拿到这个板
羡慕

使用特权

评论回复
9
木青峰| | 2021-12-31 14:49 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

536

帖子

3

粉丝