查看: 3793|回复: 4

[经验] 兆易创新GD32 Colibri-F207ZE评估板体验纪实 (七、回眸)

[复制链接]
  • TA的每日心情
    无聊
    2018-1-4 09:36
  • 签到天数: 58 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2016-2-18 12:02:26 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 okwh 于 2017-12-12 01:24 编辑

    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (七、回眸) 
                                25_okwh@https://www.cirmall.com/gd32f2mcu
       2016.02.18
    关于DMA和中断:
          DMA方式对于字节流通讯(如果文件读写等)有突出的优点,对于本项目这样需要混合交替使用多个SPI的情况,每次通讯数据量少的情况,DMA不怎么需要。
          本项目使用了三个DA,一个AD。DA操作一般不需要中断,他们是事先计划化好的以指定时间间隔进行处理,所以使用计数器中断进行处理即可。AD操作可以查询等待AD转换完成进行SPI读数,也可用AD转换完成信号做管脚中断,在中断中读数。对于本项目SPI发送TX/接收RX中断等基本不需要。 有关例子可参考GD32-Colibri-F207ZE-DEMO\Colibri_GD32F207\firmware\GD32F20x_Firmware_Library\Example\SPI\SPI_Simplex_Interrupt
    但GD32的中断功能令人印象深刻,包括NVIC和一个支持20 个相互独立边沿检测电路的外部中断/事件控制器(EXTI),支持等待中断(WFI)、软件中断(SIE)、等待事件(WFE)、发送事件(SEV)、唤醒中断(WIC)。有EXTI_InitStructure和NVIC_InitStructure两种数据结构, 细节参考库中的gd32f20x.h、gd32f20x_exit.h、gd32f20x_misc.h,以及多个例子中的gd32f20x_it文件。



    SPI中断使用三步骤为:
    a)   中断配置

    1. NVIC_InitPara NVIC_InitStructure;
    2.      /* 1 bit for pre-emption priority, 3 bits for subpriority */
    3. NVIC_PRIGroup_Enable(NVIC_PRIGROUP_1);
    4.      NVIC_InitStructure.NVIC_IRQ = SPI3_IRQn;
    5.   
    6.      NVIC_InitStructure.NVIC_IRQPreemptPriority = 0;
    7. NVIC_InitStructure.NVIC_IRQSubPriority = 1;
    8.      NVIC_InitStructure.NVIC_IRQEnable = ENABLE;
    9.      NVIC_Init(&NVIC_InitStructure);
    复制代码
    b) SPI和中断关联,比如:
    1. SPI_I2S_INTConfig(SPI3,  SPI_I2S_INT_RBNE | SPI_I2S_INT_TBE, ENABLE);
    复制代码
    a)   在中断相应函数中处理中断
    1. void SPI3_IRQHandler(void)
    2. {
    3. if (SPI_I2S_GetIntBitState(SPI3, SPI_I2S_INT_TBE) != RESET)
    4.      写发送……
    5.    if (SPI_I2S_GetIntBitState(SPI3, SPI_I2S_INT_RBNE) == SET)
    6.         读……
    7. }
    复制代码
    本项目使用到了SPI3-GPIOB-3/4/5(PA15),SPI1-GPIOA-5/6/7 (PA4), GPIOD-3/5/6/11/12/13。

    关于计时器/计数器:
             计数器是必然要用到的极其有用的功能,通过它控制整个系统的运行顺序步骤和关系,几乎是我们编程的核心功能。也因此有关计数器的使用都有很完全的解释说明和例子,没有多少困难和问题。GD32的定时器time数目众多、功能充分,可以说无所不能了。细节可参考说明书第9章和库文件gd32f20x_timer.h  和例子GD32-Colibri-F207ZE-DEMO\Colibri_GD32F207\firmware\GD32F20x_Firmware_Library\Example\TIMER。
              按照ARM MCU的设计初衷,几乎所有功能的步骤都是 配置、关联、操作。

    总结:
       ARMMCU某单一功能的通用步骤可看做是:a)配置-满足目标需要;b)关联-针对功能协作关系;c)读写代码实现操作。
         这个GD32是我试用的第一个ARM32板,目的是为计划的开发平台转移做探索评估。本次主要试验通过SPI通讯进行ADDA控制。可以说取得了完满成功。
          和我们原来基于51、196的比较,GD32提供了强大的功能,无可争议的扩展能力,端口管脚的可配置能力为电路设计提供了灵活性,为增加新的功能带来了成功希望,虽然需要学习的东西很多,还需要详细验证才能保证坚实可靠的设计开发出新产品。
          应该说兆易创新的GD32F207MCU可以满足我们的基本需要(如果能做浮点计算的MPU更好),它提供的EXMC、TFT、USB、PWM、ETH、CAN、CAU、UART、SPI、SDIO能满足广泛的应用需求。
            由于我们设备的模拟部分尚未完成,本次参赛主要验证SPI、IO、中断等数模接口控制部分。
            
    建议:
            就我个人来说,不太喜欢那些ST式(也许是我不熟悉)的资料,如果能有针对的积累提供如AD公司那样的参考硬件设计,再有针对的参考样例代码,而不是任用户在手册中和GDM3209xx-EVAL的例子中极其耗时的搜寻(也许那些已经熟悉ST片子的熟练者无需这样。我一直不喜欢手册以结构构成为基础排列内容,最好是以功能和功能协同关系设计手册,当然这需要MCU厂家更新思路服务用户),相信会更成功。



           最后,感谢版主小菜儿、感谢trochili、感谢版主糖悦之果飞、感谢论坛网友的帮助,感谢爱板网和兆易创新的支持和帮助!祝爱板网和兆易创新兴旺发达!


    本系列:
    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (一、邂逅)
    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (二、初识)
    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (三、定计)
    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (四、筑基)
    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (五、曙光)
    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (六、揭秘)
    兆易创新GD32 Colibri-F207ZE评估板体验纪实 (七、回眸)

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2018-1-4 09:36
  • 签到天数: 58 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2016-2-18 12:55:54 | 显示全部楼层
    春节回老家了,今天18号,现在整理完毕,共7贴。
    谢谢各位,祝各位新的一年顺风顺水,心想事成!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-12-7 12:35
  • 签到天数: 1354 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-2-18 22:25:19 | 显示全部楼层
    写的好,学习和参考了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-19 16:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2016-2-22 14:33:36 | 显示全部楼层
    亲,可以将内容一并发到经验频道,很有机会获得每月之星的呢http://jingyan.eeboard.com/
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-1-4 09:36
  • 签到天数: 58 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2016-2-22 16:32:38 | 显示全部楼层
    好的,谢谢提醒
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 15:56 , Processed in 0.149443 second(s), 23 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.