ME32G030 系列是内嵌 ARM Cortex™ M0 核的 32 位微控制器。 该控制器具备有常用外设和功能,如高速 12 位的 ADC 转换器,UART 串口,SPI 接口,I2C 总线接口,看门狗定时器( WDT),7 个通用计数器/定时器和 24 位 RTC。除此之外,ME32G030系列还支持马达控制功能,直流无刷电机控制 PWM 模块。可以替换STM32F1G0系列。

主要特点:

内核与主频:采用ARM Cortex-M0内核,主频最高可达48MHz,具备可嵌套中断向量控制器(NVIC)和32位硬件乘法器,能够高效处理实时任务。

存储资源:配备64KB用户程序空间和5KB启动程序,内嵌8KB高速SRAM,满足中等规模嵌入式应用的存储需求。

外设接口:集成12位ADC转换器(支持12个外部输入通道)、4个UART串口、2个SPI接口、2个I2C总线接口、看门狗定时器(WDT)及7个通用计数器/定时器,支持马达控制和直流无刷电机控制PWM模块。

电源与温度:采用2.0V~5.5V宽工作电压,工作温度范围为-40°C至+85°C,适应多种工业环境。

低功耗与安全:提供多种功耗模式选择,支持BOD(Brown-Out Reset,欠压复位)功能,增强系统稳定性。

资料:https://pan.baidu.com/s/1SJxSOUxW8at4NxEcjggahA 提取码:6967

171334hhyys0o6s6tss1c6

安装CPU支持包,找到G030系列,下载:

171334oq00sy8gn80qttzn

本次测试使用中断控制PWM占空比,并使用逻辑分析仪采集PWM波形;

进入 main函数首先将引脚设置为PWM输出模式

        //initial PWM pin

                PA8_INIT(PA8_PWM0);

                PC8_INIT(PC8_PWM0);

                PB13_INIT(PB13_PWM1);

                PA7_INIT(PA7_PWM1);

                PC2_INIT(PC2_PWM1);

                PB3_INIT(PB3_PWM2);

                PA9_INIT(PA9_PWM2);

                PA10_INIT(PA10_PWM2);

                PB14_INIT(PB14_PWM3);

                PB0_INIT(PB0_PWM3);

                PB6_INIT(PB6_PWM4);

                PC10_INIT(PC10_PWM4);

                PA10_INIT(PA10_PWM4);

                PB15_INIT(PB15_PWM5);

                PB1_INIT(PB1_PWM5);

                PC11_INIT(PC11_PWM6);

                PA11_INIT(PA11_PWM3);

        完成PWM相关的初始化

PWM_Init(1000,PWM_DEPENDENT,PWM_EDGE_ALIGN,PWM_POSITIVE);       

                PWM_EnableInt(PWM_FULLINT);

                NVIC_EnableIRQ(PWM_IRQn);//使能PWM中断

                //启动PWM

                PWM_Start();

                //设置占空比

                PWM_SetDuty(PWM0,duty);                       

                PWM_SetDuty(PWM1,100-duty);       

                PWM_SetDuty(PWM2,duty);       

                PWM_SetDuty(PWM3,100-duty);       

                PWM_SetDuty(PWM4,duty);       

                PWM_SetDuty(PWM5,100-duty);       

                PWM_SetDuty(PWM6,duty);       

在中断函数中修改占空比

void PWM_IRQHandler(void)

{

                duty+=10;

                if (duty>100)

                        duty=0;

                //Set Duty

                PWM_SetDuty(PWM0,duty);                       

                PWM_SetDuty(PWM1,100-duty);       

                PWM_SetDuty(PWM2,duty);       

                PWM_SetDuty(PWM3,100-duty);       

                PWM_SetDuty(PWM4,duty);       

                PWM_SetDuty(PWM5,100-duty);       

                PWM_SetDuty(PWM6,duty);       

                PWM_SetDuty(PWM7,100-duty);       

        PWM->CTRL_b .PWMF =0;               

}

        仿真调试截图中有逻辑分析仪的波形结果:

171334inakcmmoom2cha11

硬件接线如图:

171335i3jf9tltti4nrinp