jiajiabin 发表于 2020-9-28 18:11

【GD32307E-START】点亮一颗LED灯

<p><strong>题外话</strong>:虽然我不是论坛老油条,但也申请了好几回开发板,第一次申请成功很激动啊,虽然最近忙成狗,也要抽点时间完成作业。。。</p>

<p>虽然是单片机的老油条了,以前也用过GD330系列,但是拿到一个新的芯片系列板子,还是只有一步一步来啦。</p>

<p><strong>第一步</strong>:资料收集</p>

<p>我对于新的事物喜欢先了解了解在上手操作,首先就是下载资料咯,测评申请页有放资料,为了节约时间就不去官网找了,先直接弄下来看看。https://bbs.eeworld.com.cn/elecplay/content/139</p>

<p>在网页末尾有相关资料。</p>

<p><!--StartFragment --></p>

<p>当然也可以去官网下载:http://www.gd32mcu.com/cn/download</p>

<p>资料下载下来解压一看,嗯真香,非常符合我的胃口,我想要的都有,数据手册,驱动库,demo,开发板文件,一应俱全。资料就这些够用了。</p>

<p><strong>第二步</strong>:硬件资源了解</p>

<p>通过目测,开发板上搭载了GDlink,烧录调试不要太方便有木有,然后又LED,按键,USB,外置高速晶体,外置低速晶体,还带了一个USB转串口,基础功能调试开发板上全部搭载了,爽。原理图就敲代码的时候在细细看喽。</p>

<p><strong>第三步</strong>:开发环境/工程模板搭建</p>

<p>首先当然是安装器件支持包,我用的MDK5,安装对应的PACK文件即可啦。安装支持包非常快,很快到位,打开我的MDK,已经有了芯片选项了。</p>

<p>再次查看下载的文件,发现官方提供了大量的例子工程,有EVEL的板子的和STAR板子的DEMO,既然官方大大已经造好了轮子,我就不去造轮子啦(新建工程),拿到就开干。</p>

<p>官方的工程基于KEIL4开发的,打开后结果进去报错识别不了器件支持包,没有像以前一样可以直接转换为KEIL5的工程,气死。在翻翻下载的文件,发现在另外一个文件夹下PACK文件有新版本。。。看来做事还是不能急躁,要先多看看。赶紧安装新的器件支持包进去。。。嗯,虽然可以通过直接更改工程名称Project.uvproj&nbsp;&nbsp;扩展名后面加一个x,也就是变为Project.uvprojx 可以用KEIL5识别打开,想了想我还是自己乖乖的新建一个我喜欢的DEMO工程吧,一步一个脚印不能偷懒啊。</p>

<p>按照自己的习惯新建了文件夹,包括库,工程文件,用户文件等,新建工程,选择芯片,在工程添加了分组,添加了库文件,启动文件等,直接移植了官方demo的systick文件,用作延时,写了LED的驱动进去,编译通过。万事具备,只欠烧录。</p>

<p><strong>第四步</strong>:烧录调试</p>

<p>板子接口有DC接口,为了方便直接接GD-link接口就烧录调试供电一体了,找了半天才把我珍藏的MICRO USB线找到,现在这种线很少用了啊有木有,接上,拨动开关到LINK,由GDlink供电,电源灯他亮了。。。。板载的LED1他没动静啊,看来这个芯片是空芯片,没事我马上就让他亮起来。</p>

<p>进入keli的配置,Debug选项,设置仿真工具为CMSIS-DAP,GDlink是采用DAP协议的,非常方便,详细配置就不在赘述了,配置好后点击下载,一次下载成功,LED欢腾的闪烁了起来。</p>

<p>贴个代码:就这么简单,嵌入式程序员的第一步。</p>

<pre>
<code>//定义引脚
#define LED1_PIN                         GPIO_PIN_6
#define LED1_GPIO_PORT                   GPIOC
#define LED1_GPIO_CLK                    RCU_GPIOC

#define LED1_ON()                            gpio_bit_set(LED1_GPIO_PORT, LED1_PIN)
#define LED1_OFF()                            gpio_bit_reset(LED1_GPIO_PORT, LED1_PIN)


//初始化运行指示灯
void RUN_LED_Init(void)
{
    rcu_periph_clock_enable(LED1_GPIO_CLK);
    gpio_init(LED1_GPIO_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, LED1_PIN);
}

//主循环
int main(void)
{  
    systick_config();
    RUN_LED_Init();
    
    
    while(1)
    {
        LED1_ON();
        delay_1ms(100);
        LED1_OFF();
        delay_1ms(100);
    }
}</code></pre>

<p>最后贴上我建立的工程模板,基于MDK5,用的上的可以拿去直接用喽。</p>

<p>时间匆忙,没有时间贴图,大家见谅、</p>

okhxyyo 发表于 2020-10-9 15:23

<p>兆易GD32307E-START测评汇总<br />
<a href="https://bbs.eeworld.com.cn/thread-1143008-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1143008-1-1.html</a></p>
页: [1]
查看完整版本: 【GD32307E-START】点亮一颗LED灯