本帖最后由 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中断一次,在回调函数中实现呼吸灯功能
主函数及回调函数代码如下:
- 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;
- }
- }
-
- }
效果如下:
|