zhouminjie 发表于 2021-1-26 23:15

【东软载波ES32F369LT+开箱测评】

本帖最后由 zhouminjie 于 2021-1-26 23:15 编辑

第一次在二姨家申请板子,本以为是陪申请的,没想到中了,非常幸运{:tongue:},同时感谢东软送了精美台历,祝东软的出货量年年大幅递增
话不多说,先上照
板载资源还是比较丰富的,I/O口在TB两层分别提供了不同形式的插座,便于其他外设资源的连接

1、先上电测试,用ES-Link II mini连接电脑供电,板上除了VDDLED5点亮外,调节变阻器拨动遥感按键也没有其他现象出现

2、下载demo资料,开始点灯
开发板原理图显示两个LED分别接到PF0、PF1


参考ES32_SDK_V1.09\Projects\ES32F36xx\Discovery\00_led例程
将例程中LED对应的GPIO口改为PF0、PF1

配置定时器GP32C4T0定时100us中断一次,在回调函数中实现呼吸灯功能
主函数及回调函数代码如下:
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();
      
      /* Initialize GP16C4T0 */
      h_tim.perh = GP16C4T0;
      h_tim.init.prescaler    = 71;
      h_tim.init.mode         = TIMER_CNT_MODE_UP;
      h_tim.init.period       = 99;//100us
      h_tim.init.clk_div      = TIMER_CLOCK_DIV1;
      h_tim.init.re_cnt       = 0;
      h_tim.period_elapse_cbk = ald_timer_period_elapsed_callback;
      ald_timer_base_init(&h_tim);

      /* Initialize clock source */
      tim_clock.source = TIMER_SRC_INTER;
      ald_timer_config_clock_source(&h_tim, &tim_clock);

      /* Enable GP16C4T0 interrupt */
      ald_mcu_irq_config(GP16C4T0_IRQn, 0, 3, ENABLE);      
      /* Enable UPDATE interrupt */
      ald_timer_interrupt_config(&h_tim, TIMER_IT_UPDATE, ENABLE);
      /* Start input pwm from GP16C4T0 channel 1 */
      ald_timer_base_start(&h_tim);
      
      while(1) {

      }
}void ald_timer_period_elapsed_callback(struct timer_handle_s *arg)
{
      PWMcount++;
      Breathingcount++;
      if(PWMcount==PWMduty)
      {
                ald_gpio_write_pin(GPIOF,GPIO_PIN_0,1);
                ald_gpio_write_pin(GPIOF,GPIO_PIN_1,1);
      }
      if(PWMcount==30)
      {
                ald_gpio_write_pin(GPIOF,GPIO_PIN_0,0);
                ald_gpio_write_pin(GPIOF,GPIO_PIN_1,0);
                PWMcount=0;
      }
      if(Breathingcount==1000&&directflag==0)
      {
                Breathingcount=0;
                PWMduty++;
                if(PWMduty==25)
                {
                        directflag=1;
                }
      }
      if(Breathingcount==1000&&directflag==1)
      {
                Breathingcount=0;
                PWMduty--;
                if(PWMduty==1)
                {
                        directflag=0;
                }
      }
      
}效果如下:











页: [1]
查看完整版本: 【东软载波ES32F369LT+开箱测评】