参考资料:

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

测试效果

ME32G030介绍

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

特性

高性能 32位 ARM CPU 内核

速度高达48Mhz 的ARM Cortex-M0 处理器

可嵌套中断向量控制器(NVIC)

32位硬件乘法器

24位系统嘀嗒定时器

DMA,支持外设到SRAM,SRAM到外设以及SRAM到SRAM操作

Flash 存储器

64K字节的用户程序空间

5K 字节启动程序

32位Flash数据总线,支持高性能应用要求

SRAM 存储器

内嵌8K 字节高速SRAM

16位PWM发生器

8通道PWM输出

自动死区插入

基于硬件的保护系统

内嵌系统引导程序(bootloader)

?支持Flash存储器In-System-Program (ISP) 、 In-Application-Program (IAP)和In-Ciruits-Program (ICP)

?支持用户程序保护和加密

灵活的时钟单元

多个时钟源

内置48 MHz精度 1% 的内部高速振荡器,用户可调

内置32KHz 看门狗振荡器RTC32K外部晶振

内置24位计数器,用于实时计时和产生定时中断

定时器/计数器

4个基础定时器/计数器和2个增强型定时器/计数器

基础定时器/计数器支持匹配中断功能和2路互补的PWM输出

基础定时器/计数器支持标准红外载波输出

增强型定时器/计数器支持匹配和捕获中断功能

增强型定时器/计数器支持边沿计数,门控计数, AB相正交计数,触发计数,符号计数和3路PWM输出

模拟外设

12位 1MHz SAR ADC 转换器

8个通道AD

支持软件和硬件AD转换触发模式

2个比较器,8路输入,2个输出

丰富的通信接口和通用输入/输出端口(GPIO)

4个具备16字节FIFO 的串口通信模块,支持硬件握手(RTS/CTS)同时支持IrDA 协议

2个扩展的 SPI接口,支持多种协议

2个I2C接口

44个高速GPIO接口

电源管理

省电模式:睡眠模式,深度睡眠和掉电模式

通过4路WAKEUP管脚从掉电模式中唤醒

深度睡眠可以提供WDT/RTC定时中断唤醒

支持欠压检测(BOD),两组可配置电压检测点可分别产生欠压中断和强制复位

支持上电复位(POR)

集成的电源管理单元(PMU)

工作温度范围

工业级 (-40°C ~ +85°C)

扩展级 (-40°C ~ +105°C)

唯一的产品序列号

2.0V~5.5 V 宽压工作范围

48/32/20管脚LQFP/QFN/TSSOP封装

   程序功能:

   上位机发送字符,MCU收到后,回传。

   程序代码

<pre>//UART ECHO demo Main Program

  • #include "me32g030.h"
  • #include "me32g030_uart.h"
  • //#include "me32g030_sys.h"
  • #include "me32g030_ioconfig.h"
  • //Main function entry
  • int main(void)
  • {
  •         uint32_t i;

  •         FMC->FLASH_RDCYC=1;
  •         SYSCON->SYSAHBCLKDIV =1;
  •         SystemCoreClockUpdate ();
  •         //init UART pin
  •         PA2_INIT(PA2_UART1_TX);
  •         PA3_INIT(PA3_UART1_RX);
  •        
  •         //initial UART1
  • //        UART_Open(UART1,256000,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  • //        UART_Open(UART1,115200,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  • //        UART_Open(UART1,128000,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  • //        UART_Open(UART1,57600,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  •                 UART_Open(UART1,115200,UART_NO_PARITY,UART_TRIGGER_LEVEL_4_BYTES);
  • //                UART_Open(UART1,38400,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  • //                UART_Open(UART1,19200,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  • //                UART_Open(UART1,14400,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  • //                UART_Open(UART1,9600,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);

  •                 if (UART1->LSR_b.THRE)
  •                         UART1->THR=0x5A;
  •         //Loop forever
  •         while(1)
  •         {
  •                 //send received data
  • //                 if (UART1->LSR_b.THRE)
  • //                         UART1->THR=0x5A;
  • //                i=0xff;
  • //                while(i--);
  •                 if (UART1->LSR_b.RDR)
  •                 {
  •                         if((UART1->LSR_b.THRE))
  •                                 UART1->THR=UART1->RBR;
  •                 }
  • //                if (!UART_ByteRead(uart,&data))
  • //                        UART_ByteWrite(uart,data);
  •         }

  • }
  • </pre>
  • 复制代码

          程序下载:

        image.png


       串口测试:

    image.png