查看: 3000  |  回复: 3
GD32E231 开发板试用分享之直流电机调速
LIXIANG
1
主题
4
回复
发表于2019-05-19 15:08:09 | 显示全部楼层
1# 电梯直达
 GD32E231 开发板试用分享之直流电机调速

 

一、   开发板开箱图

附图

  

  

二 、  GD32MCU 产品的介绍:
  1.
内核 ARM Cortex-M23
  2.
封装:LQFP48

      3.Flash: 16KB/32KB/64KB
  4.SRAM: 4KB/6KB/8KB
   5.
定时器:general timeradvanced timersys Tick basic timerwatchdogrtc
   6. connectivity:usart
12cspi/12s
       GPIO/CMP/OP-AMP/EXTI
    7.
数模转换:units/channels external/channels internal
    8.Working Voltage
1.8V~3.6V
    9.Working Temperature
-40℃ ~ +85℃

 

GD32 MCU  各模块的性能优势

1.    GD32E231系列器件是基于ARM ® Cortex?-M23处理器的32位通用微控制器。Cortex?-M23处理器的所有存储访问,根据不同的目的和目标存储空间,都会在AHB总线上执行。存储器的组织采用了ARMv8M结构,预先定义的存储器映射和高达4 GB的存储空间,充分保证了系统的灵活性和可扩展性。

Cortex?-M23处理器是一个低功耗32位处理器。适用于需要一个区域优化处理器来进行深度嵌入式应用的场景。Cortex?-M23处理器为开发人员提供了显著的好处,包括:

l 一个简单的体系结构,易于学习和编程;

l  超低功耗、高效节能;

l  优秀的代码密度;

l  确定性、高性能中断处理;

l  向上兼容Cortex-M处理器家族系列;

GD32E231系列器件的优点有

l     开发板小巧且集GD-LINK仿真器于一身,支持在线仿真

l     外设丰富能满足基本开发

l     开发相较于STM32单片机来说难度更小,功能却基本相近,性能不减

l     相较于51单片机来说,功能更丰富,处理器速度更高

 

 

  三、  方案介绍+ + 方案系统框图

方案介绍:利用外设PWM输出方波,通过按键控制方波的高电平占空比,从而控制其输出的电压来调节直流电机的转速。

用到的外设有:TIMER0高级定时器、PWMGPIO

 

 

四、    照片示例和功能的实现

 

说明:

如图(2KEY1KEY2的功能分别是 增加输出的PWM的高电平占空比,和降低高电平占空比。通过按KEY1KEY2键分别达到直流电机升速降速目的。图(2)中,PWM输出高电平占空比被调节到最小,LED1亮(占空比最低指示灯),电机的供给电压达最小,电机停止工作。图(3)中PWM输出高电平占空比被调节到最大,LED2亮(占空比最高指示灯),电机的供给电压达最大,电机工作速度最大。

 

            (图一)

 

 

 

 

  

 五、代码分享

 

部分代码:

void Power_UP(void)

{

            //PWM  占空比加按键

               if(0 == gpio_input_bit_get(GPIOA, GPIO_PIN_5))

     {

         delay_1ms(100);

                   if(0 == gpio_input_bit_get(GPIOA, GPIO_PIN_5))

            {

                  

            if(i_kcl!=100)

                   i_kcl=i_kcl+10;

           

                   if(i_kcl==100)

                                 gpio_bit_set(GPIOA,GPIO_PIN_2);

                    else

                            gpio_bit_reset(GPIOA, GPIO_PIN_2);

                  

                    

                   if(i_kcl==0)                                                                                                                                            

                                 gpio_bit_set(GPIOA,GPIO_PIN_1);

                          else

                                 gpio_bit_reset(GPIOA, GPIO_PIN_1);                

                    

               

            }

        while(0 == gpio_input_bit_get(GPIOA, GPIO_PIN_5));

     }

}

void Power_DOWN(void)

{

            //PWM  占空比减按键

                          if(0 == gpio_input_bit_get(GPIOA, GPIO_PIN_6))

     {

                                 delay_1ms(100);

                          if(0 == gpio_input_bit_get(GPIOA, GPIO_PIN_6))

            {

           

                          if(i_kcl!=0)

                                 i_kcl=i_kcl-10;      

                                 if(i_kcl==0)                                                             //i_kcl=0时,让i_kcl不再增加;以免溢出以免溢出,开启最小值示意灯

                           gpio_bit_set(GPIOA,GPIO_PIN_1);

                                 else

                           gpio_bit_reset(GPIOA, GPIO_PIN_1);

                                       

                                       

                                        if(i_kcl==100)

                                gpio_bit_set(GPIOA,GPIO_PIN_2);

                                        else

                            gpio_bit_reset(GPIOA, GPIO_PIN_2);

              

            }

           while(0 == gpio_input_bit_get(GPIOA, GPIO_PIN_6));

     }

}

int main(void)

{

    

            i_kcl=0;

    FlagStatus breathe_flag = SET;

   

    /* configure the GPIO ports */

    gpio_config();

   

    /* configure the TIMER peripheral */

    timer_config();

   

    /* configure systick */

    systick_config();

    while (1)

                   {

                          Power_UP();

                                

                          Power_DOWN();

        /* configure TIMER channel output pulse value */

        timer_channel_output_pulse_value_config(TIMER0,TIMER_CH_1,i_kcl);

             

                   }

}

头文件.zip  

来自理想
LIXIANG
1
主题
4
回复
发表于2019-05-21 16:29:37   |  显示全部楼层
4#
发表于2019-05-19 15:35:19  2# 能打包个整个工程?可怜我连官方demo都编译不了
分享里的头文件有
来自理想

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部