查看: 813|回复: 21

[GD32F190方案分享] 在190小红板上实现Trochili平台上的RFID

[复制链接]

1

主题

1

好友

208

积分

秀才

Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2015-12-12 08:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-5-2 16:43:36 |显示全部楼层
    本帖最后由 火oooo 于 2016-5-2 19:56 编辑

    其实早在1年前有机会得到一块GD23F103的板子,但一直没得机会玩起来。后来有机会遇到留虚名老师,得以了解Trochili,这才又开始重新审视GD32。由于时间上的冲突,之前的GD几次活动没能赶上,所以就非常珍视这次190的小红板,而且得到论坛xinxin、飞飞的支持,终于如愿得到期待已久的小红板,再次感谢xinxin、飞飞和留虚名老师。
    这次使用小红板主要实现的目标有2个:1. 在190平台上深入理解trochili;2. 基于1实现RFID的读卡系统。
    因为本彩笔是系统白,故前面会更新的较慢,但会以新人的视角来理解Trochili,并把过程完全的分享给关注本帖的大家,谢谢大家的关注。
    回复

    使用道具 举报

    1

    主题

    1

    好友

    208

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2015-12-12 08:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-5-2 16:44:10 |显示全部楼层

    焊好排针的小红板

    本帖最后由 火oooo 于 2016-5-5 08:04 编辑

    开箱帖什么的,因为有大大会秀出,所以咱渣的拍照技术就不丢人了。
    这里只把焊好排针的小红板秀一下

    焊好排针的小红板

    焊好排针的小红板


    有条尾巴?那是错觉,其实是条手挽带,请看下图

    小红板的正面

    小红板的正面

    小红板的背面

    小红板的背面
    回复

    使用道具 举报

    1

    主题

    1

    好友

    208

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2015-12-12 08:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-5-2 16:44:47 |显示全部楼层

    1. Trochili系统部分

    本帖最后由 火oooo 于 2016-5-2 20:28 编辑

    拿到小红板时激动的心情简直是无法用心情来形容,但是还没来得及激动多久,心情就一下子冷了下来……因为插上电后看着闪烁的灯,茫然了,不知所措……接下来做什么?怎么做?自己犹如深处浓雾之中的独身旅人

    在不知所措中试着打开飞鸟哥亲情奉献的例程“trochili_v0.12_preview4_20160408”,试着编译一下。30个错误,一下子蒙了。看下提示信息,都是core_cmInstr.h 文件无法打开,终于知道在包含文件中此文件的路径有误,修改为“d:\Keil_v5\ARM\Pack\ARM\CMSIS\4.2.0\CMSIS\Include”,解决,编译通过。

    debug工具选择的是“CMSIS-DAP Debugger”,其它默认,download成功,又可以看到闪烁的灯。虽然这次的闪灯跟刚拿到板子时的情况是一样的,但心情却不一样了,因为对于Trochili终于踏出了第一步。

    接下来,看到例程中有多个example,想逐个尝试一下,看下有什么不同的效果……but……该怎么改?

    看书,看飞鸟哥的《嵌入式实时操作系统原理与最佳实践》(注:请在论坛上查找最新的电子版,机械工业版的与最新的例程有出入),查找程序的入口,终于看到在每个example中都有类似的一句“#if (EVB_EXAMPLE == CH13_BOARD_TEST_EXAMPLE)”,结合“example.h”文件中的“#define EVB_EXAMPLE                CH13_BOARD_TEST_EXAMPLE”一句,理解到把此句更换为需要测试的例子就好。比如想要测试线程的话,就更改为“#define EVB_EXAMPLE                  CH2_THREAD_EXAMPLE1”,在编译,下载后可以看到板上的LD4、LD5、LD6依次亮、灭。而后面的2~7现象依次是
    2:LD5亮、灭;
    3:LD5亮、灭;
    4:LD5亮、灭;
    5:LD5亮、灭;
    6:LD5、LD6依次亮、灭2次;
    7:LD5亮、灭。这是直观的小红板的表现,对于程序的解读,在后面会再深入。而其它的example后面会再进行测试。




    回复

    使用道具 举报

    1

    主题

    1

    好友

    208

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2015-12-12 08:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-5-2 20:00:18 |显示全部楼层
    本帖最后由 火oooo 于 2016-5-5 08:10 编辑

    由于3楼不知为何不能写入,所以先把预留给RFID应用的这层给占了吧。
    接着说CH2_THREAD_EXAMPLE1,也就是thread_init.c这个文件。这个应用(称这个为应用不知合适不合适,还请飞鸟哥指正,谢谢)现象大家都还记得是什么吧?就是3颗led依次亮灭。
    在程序中我们可以看到这样一段代码:
            delay(0x8FFFFF);
            EvbLedControl(LED1, LED_ON);

            delay(0x8FFFFF);
            EvbLedControl(LED1, LED_OFF);

            delay(0x8FFFFF);
            EvbLedControl(LED2, LED_ON);

            delay(0x8FFFFF);
            EvbLedControl(LED2, LED_OFF);

            delay(0x8FFFFF);
            EvbLedControl(LED3, LED_ON);

            delay(0x8FFFFF);
            EvbLedControl(LED3, LED_OFF);

    是不是觉得很熟悉?这就是我们看到的led亮灭的对应部分。亮的时间由延时函数delay的参数决定。而这段代码存在于static void ThreadLedEntry(TArgument data)这个入口函数中。所以现在我们来看一下这个应用thread_init.c的整体结构:
    1. 包含头文件        
    2. 预编译开关
    3. 三个参数          设定栈长宽字节、优先级字节、时间片字节的长度
    4. 定义线程
    5. 定义线程栈
    6. 定义线程入口函数  线程的主要功能在这里实现。static void ThreadLedEntry(TArgument data)函数就在这个位置
    7. 定义应用入口函数  系统调用此应用,从而对线程进行处理
    8. 定义main函数
    这个结构在后续的程序分析中我们再逐个印证。

    回复

    使用道具 举报

    1

    主题

    1

    好友

    2657

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    昨天 23:09
  • 签到天数: 640 天

    [LV.9]以坛为家II

    发表于 2016-5-2 22:26:25 |显示全部楼层
    看一看,参考和学习
    回复

    使用道具 举报

    4

    主题

    0

    好友

    1586

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 1108 天

    [LV.10]以坛为家III

    爱板会员勋章 活跃会员勋章 发帖机器勋章

    发表于 2016-5-4 09:51:10 |显示全部楼层
    焊出线想做什么,不弄GD32F190,而是直接把板载调试器的GD32F103当普通功能用?
    这样用应该也是可以的,多一个USB口,3.3V IO电平,引出线外挂调试器。
    回复

    使用道具 举报

    195

    主题

    3

    好友

    9624

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2016-5-4 10:20:22 |显示全部楼层
    文章不错,请内容去经验频道一并发一下,可以有双重奖励哟http://jingyan.eeboard.com/
    回复

    使用道具 举报

    1

    主题

    1

    好友

    208

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2015-12-12 08:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-5-5 06:58:37 |显示全部楼层
    toofree 发表于 2016-5-4 09:51
    焊出线想做什么,不弄GD32F190,而是直接把板载调试器的GD32F103当普通功能用?
    这样用应该也是可以的,多 ...

    楼上说的是。我有强迫症。自从我的V7的JLink不能用之后,一直使用nucleo的stlink作为调试工具用。GD这个虽然还不太清楚,但还是被我先引出来了,后面用到再说。
    回复

    使用道具 举报

    1

    主题

    1

    好友

    208

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2015-12-12 08:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-5-5 07:46:11 |显示全部楼层
    糖悦之果飞 发表于 2016-5-4 10:20
    文章不错,请内容去经验频道一并发一下,可以有双重奖励哟http://jingyan.eeboard.com/ ...

    请问飞飞,一个楼层里能写多少字?我现在编辑3楼时,无法写入。
    回复

    使用道具 举报

    1

    主题

    1

    好友

    208

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2015-12-12 08:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-5-5 08:01:18 |显示全部楼层
    jinglixixi 发表于 2016-5-3 14:59
    感谢分享,初次使用时确实关心的是编译环境的建立与下载。随后就是你玩转示例并改为自己需要的功能。 ...

    同意楼上。小白的经历咱都有过,特别是一些非常小的细节可能都会阻挡相当一部分人继续深入下去,所以我想把我遇到的问题跟大家分享出来,这样至少有同样情况的人可以顺利过去了。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /6 下一条


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-4 12:04 , Processed in 0.141823 second(s), 19 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部