wucheng2009 发表于 2021-1-23 17:47

【东软载波ESF3696LT开发板活动】软件安装试用和例程运行

本帖最后由 wucheng2009 于 2021-1-24 15:53 编辑

   首先,主角登场(开发板+es-link):      
                                 
      还有1本台历和1页活动说明没拍(台历太多了,1个供应商最少寄1本,老板让我自己处理,给了几本给周围同事,还有好几本在抽屉里吃灰了)      接着下载资料,链接奉上:https://huodong.21ic.com/eastsoft/index?mobile=2 这次活动资料准备蛮全面的,基本上不需要再去官网翻资料。但是,缺一个比较重要的,keil插件没放在链接里面,如果需要在keil上编译下载,这个文件是必不可少的,然而官方一点提示都没有,按道理不管哪家的MCU,基本上都会开发一款插件安装到Keil安装目录下的,这是活动的组织者竟然漏掉了不提供。不但如此,官网的技术支持板块竟然没找到,而且这个插件还藏的比较深,在官网的论坛里面才能找到,翻了1个小时左右,估计这里就实力劝退了不少人。插件链接奉上:http://www.essemi.com/thread/134.html。      国际惯例,先安装插件,然后简单看了下ES32_SDK_V1.09文件包里面的文档说明。Projects目录下放置有各微控制器芯片的例程,所以直奔ES32F036XX文件包,大概翻了一遍,最后选了Discovery里面的例程,为什么呢?因为它是基于ALD驱动的,使用习惯接近于STM32的基本库操作。不需要纠结MCU寄存器怎么配置,爽歪歪。       接下来打开00_led例程的时候,keil提醒没找到器件,如下图,要下载芯片支持包:
      
然而提醒界面的链接打不开,只能手动安装下载好的1.0.8pcak,双击打开之后,继续弹窗报警,MDK版本过低,不支持安装,楼主当时没有截图,网上找了个一样报警的:      为什么会出现这种情况呢,因为楼主现在主要在开发3C类电子,而且因为成本原因,用的是台湾HT的单片机和他们家的编译器,所以已经半年没打开keil了{:sweat:}。加上之前用到都是stm8/stm32f030/stm32f103这几款来回切换,所以之前也一直没有更新MDK版本。然后悲剧来了,这个时候楼主走入了一个误区,想着官网应该提供1.0.0版本的支持包,所以在官网上花了浪费了1个小时,还没找到{:sweat:}。      换个办法,更新MDK版本,结果更新不了,因为KEIL使用期过期了!众所周知,keil之前国内出过一个**器,只能用到2020年年底,楼主就是用到那个版本。万能的度娘,别说还真有最新版本的keil的证书**软件和C51+MDK的新版本。国际惯例,上链接:https://blog.csdn.net/JasonCrawford/article/details/104066624?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4.control老办法,先安装C51和MDK到默认的安装目录(安装时会自动寻找已经安装好的目录),然后用管理员模式开打keil5,使用keil证书**更新有效期(到2032年)。然后安装下载的1.0.8pcak包,一切顺利。打开SDK里面的00_led例程,具体路径为:ES32_SDK_V1.09\ES32_SDK_V1.09\Projects\ES32F36xx\Discovery\00_led\MDK-ARM       打开例程后,编译->pass;烧录,咦!选哪个?懵逼中!!!查了一圈,官方也没写ES_Link怎么设置,也没找到官方的说明文件,只能笨方法一个个试了,终于,成功连上,如下图;      
      烧录->pass;然而,没有反应!      源码端上://============main.c-===================// int main(){      /* Initialize ALD */      ald_cmu_init();      /* Configure system clock */      ald_cmu_pll1_config(CMU_PLL1_INPUT_HRC_6, CMU_PLL1_OUTPUT_72M);      ald_cmu_clock_config(CMU_CLOCK_PLL1, 72000000);      ald_cmu_perh_clock_config(CMU_PERH_ALL, ENABLE);      /* led init */      bsp_led_init();      while(1) {                bsp_led_toggle(3);                bsp_led_toggle(2);                ald_delay_ms(300);      }}//======================BSP_LED.C===============//void bsp_led_init(void)
{
      gpio_init_t x;
      
      bsp_led_off(2);
      bsp_led_off(3);
      x.mode = GPIO_MODE_OUTPUT;
      x.pupd = GPIO_PUSH_UP;
      x.odos = GPIO_PUSH_PULL;
      x.nodrv = GPIO_OUT_DRIVE_1;
      x.podrv = GPIO_OUT_DRIVE_1;
      x.flt= GPIO_FILTER_DISABLE;
      x.type = GPIO_TYPE_CMOS;
      x.func = GPIO_FUNC_1;
      ald_gpio_init(GPIO_PORT_LED2, GPIO_PIN_LED2, &x);      
      ald_gpio_init(GPIO_PORT_LED3, GPIO_PIN_LED3, &x);      
}

void bsp_led_on(uint8_t num)
{
      if (num == 2) {
                GPIO_PORT_LED2->BSRR = (GPIO_PIN_LED2 << 15);
      }
      else if (num == 3) {
                GPIO_PORT_LED3->BSRR = (GPIO_PIN_LED3 << 15);
      }
}


void bsp_led_off(uint8_t num)
{

      if (num == 2) {
                GPIO_PORT_LED2->BSRR = GPIO_PIN_LED2;
      }
      else if (num == 3) {
                GPIO_PORT_LED3->BSRR = GPIO_PIN_LED3;
      }
}


void bsp_led_toggle(uint8_t num)
{
      if (num == 2) {
                GPIO_PORT_LED2->BIR = GPIO_PIN_LED2;
      }
      else if (num == 3) {
                GPIO_PORT_LED3->BIR = GPIO_PIN_LED3;
      }
}//=================BSP_LED.H=============//

#define BSP_LED_MAX      2
#define GPIO_PORT_LED3          GPIOC
#define GPIO_PIN_LED3   GPIO_PIN_13
#define GPIO_PORT_LED2          GPIOC
#define GPIO_PIN_LED2   GPIO_PIN_10


按照代码应该是LED2(PC10),LED3(PC13)每隔300ms翻转一次;对了一下板子上的LED2,边上印着丝印PF1?LED3,边上的丝印是OTG-5V?神马情况,通用代码,不是这块板子的?
      看下官方打包过来的V1.3版本的原理图,确定了,源码和原理图对不上!OK,咱改代码,但是,LED2驱动端口标注为LED4,LED1驱动端口标注为LED3!蜜汁命名方式,咱也不知道为什么要这样,咱也不敢多问,你们开心就好哈。PS:弱弱的问一句,有小伙伴知道这有啥不可告人的秘密吗?   原理图截图:   

    咱换成LED1和LED2好了,对应端口PF0/PF1,源码更改://=====================分隔符===============//    main.c    int main()   {      /* Initialize ALD */      ald_cmu_init();      /* Configure system clock */      ald_cmu_pll1_config(CMU_PLL1_INPUT_HRC_6, CMU_PLL1_OUTPUT_72M);      ald_cmu_clock_config(CMU_CLOCK_PLL1, 72000000);      ald_cmu_perh_clock_config(CMU_PERH_ALL, ENABLE);      /* led init */      bsp_led_init();      while(1) {                bsp_led_toggle(1);                bsp_led_toggle(2);                ald_delay_ms(300);      }   }//=====================分隔符===============//    bsp_led.c   void bsp_led_init(void)   {      gpio_init_t x;
      bsp_led_off(1);      bsp_led_off(2);      x.mode = GPIO_MODE_OUTPUT;      x.pupd = GPIO_PUSH_UP;      x.odos = GPIO_PUSH_PULL;      x.nodrv = GPIO_OUT_DRIVE_1;      x.podrv = GPIO_OUT_DRIVE_1;      x.flt= GPIO_FILTER_DISABLE;      x.type = GPIO_TYPE_CMOS;      x.func = GPIO_FUNC_1;      ald_gpio_init(GPIO_PORT_LED1, GPIO_PIN_LED1, &x);            ald_gpio_init(GPIO_PORT_LED2, GPIO_PIN_LED2, &x);         }
    void bsp_led_on(uint8_t num)
   {
      if (num == 1) {
                GPIO_PORT_LED1->BSRR = (GPIO_PIN_LED1 << 15);
      }
      else if (num == 2) {
                GPIO_PORT_LED2->BSRR = (GPIO_PIN_LED2 << 15);
      }
   }   
   void bsp_led_off(uint8_t num)
   {

      if (num == 1) {
                GPIO_PORT_LED1->BSRR = GPIO_PIN_LED1;
      }
      else if (num == 2) {
                GPIO_PORT_LED2->BSRR = GPIO_PIN_LED2;
      }
    }
    void bsp_led_toggle(uint8_t num)
    {
      if (num == 1) {
                GPIO_PORT_LED1->BIR = GPIO_PIN_LED1;
      }
      else if (num == 2) {
                GPIO_PORT_LED2->BIR = GPIO_PIN_LED2;
      }
    }
   //=====================分隔符===============//
   bsp_led.h
   #define BSP_LED_MAX      2

    #define GPIO_PORT_LED1          GPIOF
   #define GPIO_PIN_LED1   GPIO_PIN_0
   #define GPIO_PORT_LED2          GPIOF
   #define GPIO_PIN_LED2   GPIO_PIN_1
//=====================分隔符===============//
      编译一次,成功,没问题,烧录,LED1/LED2同时闪烁起来了。OK,没问题。大概花了半天时间把官方例程跑起来了。总结一下,官方准备的资料还算全面,正式开发会节约不少开发时间。美中不足的,没有提供keil插件,插件还不在官网的技术支持目录下,而是在论坛里面单独提供,一般找资料都应该是先找官方资料的,另外Keil界面没有使用说明,所以使用起来会有点找不到方向感的感觉。      最后,原理图编辑的有点任性。







windskygrow 发表于 2021-2-7 11:35

http://www.essemi.com/article/c143.html
插件在官网呢
页: [1]
查看完整版本: 【东软载波ESF3696LT开发板活动】软件安装试用和例程运行