[国产单片机] 【东软载波ES32F369LT+开箱测评】

[复制链接]
 楼主| zhouminjie 发表于 2021-1-26 23:15 | 显示全部楼层 |阅读模式
本帖最后由 zhouminjie 于 2021-1-26 23:15 编辑

第一次在二姨家申请板子,本以为是陪申请的,没想到中了,非常幸运,同时感谢东软送了精美台历,祝东软的出货量年年大幅递增
话不多说,先上照
板载资源还是比较丰富的,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中断一次,在回调函数中实现呼吸灯功能
主函数及回调函数代码如下:
  1. int main()
  2. {
  3.         /* Initialize ALD */
  4.         ald_cmu_init();
  5.         /* Configure system clock */
  6.         ald_cmu_pll1_config(CMU_PLL1_INPUT_HRC_6, CMU_PLL1_OUTPUT_72M);
  7.         ald_cmu_clock_config(CMU_CLOCK_PLL1, 72000000);
  8.         ald_cmu_perh_clock_config(CMU_PERH_ALL, ENABLE);
  9.         /* led init */
  10.         bsp_led_init();
  11.         
  12.         /* Initialize GP16C4T0 */
  13.         h_tim.perh = GP16C4T0;
  14.         h_tim.init.prescaler    = 71;
  15.         h_tim.init.mode         = TIMER_CNT_MODE_UP;
  16.         h_tim.init.period       = 99;//100us
  17.         h_tim.init.clk_div      = TIMER_CLOCK_DIV1;
  18.         h_tim.init.re_cnt       = 0;
  19.         h_tim.period_elapse_cbk = ald_timer_period_elapsed_callback;
  20.         ald_timer_base_init(&h_tim);

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

  24.         /* Enable GP16C4T0 interrupt */
  25.         ald_mcu_irq_config(GP16C4T0_IRQn, 0, 3, ENABLE);        
  26.         /* Enable UPDATE interrupt */
  27.         ald_timer_interrupt_config(&h_tim, TIMER_IT_UPDATE, ENABLE);
  28.         /* Start input pwm from GP16C4T0 channel 1 */
  29.         ald_timer_base_start(&h_tim);
  30.         
  31.         while(1) {

  32.         }
  33. }
  1. void ald_timer_period_elapsed_callback(struct timer_handle_s *arg)
  2. {
  3.         PWMcount++;
  4.         Breathingcount++;
  5.         if(PWMcount==PWMduty)
  6.         {
  7.                 ald_gpio_write_pin(GPIOF,GPIO_PIN_0,1);
  8.                 ald_gpio_write_pin(GPIOF,GPIO_PIN_1,1);
  9.         }
  10.         if(PWMcount==30)
  11.         {
  12.                 ald_gpio_write_pin(GPIOF,GPIO_PIN_0,0);
  13.                 ald_gpio_write_pin(GPIOF,GPIO_PIN_1,0);
  14.                 PWMcount=0;
  15.         }
  16.         if(Breathingcount==1000&&directflag==0)
  17.         {
  18.                 Breathingcount=0;
  19.                 PWMduty++;
  20.                 if(PWMduty==25)
  21.                 {
  22.                         directflag=1;
  23.                 }
  24.         }
  25.         if(Breathingcount==1000&&directflag==1)
  26.         {
  27.                 Breathingcount=0;
  28.                 PWMduty--;
  29.                 if(PWMduty==1)
  30.                 {
  31.                         directflag=0;
  32.                 }
  33.         }
  34.         
  35. }
效果如下:











本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

33

主题

140

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部