Cortex®-M0 处理器是一个可配置,具有多级流水线的 32 位 RISC 处理器。它拥有一个 AMBA AHB-Lite 接口并包含 NVIC 组件,同时有可选的硬件调试功能。该处理器可以执行 Thumb 指令,并与其他 Cortex®-M 系列处理器兼容。该处理器支持两种工作模式——Thread 模式和 Handler 模式。 异常时系统进入 Handler 模式, 异常返回只能在 Handler
模式下执行。系统复位及异常返回后均可进入 Thread 模式。
1.2 特性
◆ 低门数处理器:
- ARMv6-M Thumb®指令集。
- Thumb-2 技术。
- ARMv6-M 兼容 24 位系统定时器。
- 一个 32 位硬件乘法器。
- 系统接口支持小端数据访问。
- 准确而及时的中断处理能力。
- 加载/存储多个数据和多周期乘法指令可被终止,然后重新开始,从而实现快速中断处理。
- C 应用程序二进制接口的异常兼容模式。
- ARMv6-M 的 C 应用程序二进制接口(C-ABI)异常兼容模式允许用户使用纯 C 函数实现中断处理。
◆ NVIC:
- 32 个外部中断,每个中断有 4 级优先级。
- 专用的不可屏蔽中断(NMI)。
- 同时支持电平和脉冲触发中断。
- 支持中断唤醒控制器(WIC),提供极低功耗空闲模式。
◆ 调试支持:
- 四个硬件断点。
- 两个观察点。
- 用于非侵入式代码分析的程序计数采样寄存器(PCSR)。
- 单步和向量捕捉能力。
◆ 总线接口:
- 为所有的系统接口及存储器提供简单集成的单一的 32 位 AMBA-3 AHB-Lite 系统接口。
- 支持 DAP(调试使用端口)单一的 32 位从机端口。


主控ARM Cortex M0内核,主频最高64MHz,工作电压:2.1V-5.5V,工作温度:-40℃ - 105℃,32KB Flash,8KB SRAM,1KB Data Flash、
DEMO程序运行:需要注意是JLINK烧录需要版本9.0以上才可以

核心代码
void MC_Control(void){ switch(SYSTEM_STATE) { /* 系统初始化 */ case SYS_INIT: { Mot_Parameter_Init(); BasePara_Init(); SYSTEM_STATE = SYS_RUN; break; } /* 系统正常工作状态 */ case SYS_RUN: { /* 系统处于界面调试模式 */ #if (Config_Comm_Mode == Comm_UI) { if(Flag.MC_RunStop == 0) {BasePara_Init();} if(Fault_OverVoltage || Fault_UnderVoltage) {u_Motor_Off();} } #else /* 电机运行以及调速控制 */ if(Time.Motor_Restart == 0) { /* 故障刹车保护重启 */ if(Fault_ShortCircuit) { Fault_ShortCircuit=0; EPWM_ResetFaultBrake(); } /* 电压保护关机 */ if(Fault_OverVoltage || Fault_UnderVoltage) { u_Motor_Off(); }else if(Fault_Block){ Fault_Block=0; u_Motor_On(); } else { /*用户控制代码:由客户按照实际应用自行处理,包括以下几点 */ /* 1、电机运行使能:u_Motor_On(); */ /* 2、电机停止:u_Motor_Off(); */ /* 3、调速信号给定:u_Motor_Speed_Set(Basic.VCtr); */ #if (0) if(Basic.VCtr < VCTRL_REF_L) { u_Motor_Off(); } else if(Basic.VCtr > VCTRL_REF_H) { u_Motor_Speed_Set((Basic.VCtr>>2)); u_Motor_On(); } #endif } } #endif break; } /* 电机重启 */ case SYS_RESTART: { u_Motor_Off(); /* 重启间隔时间 */ Time.Motor_Restart = Motor_Restart_InvalTime*1000; /* 故障次数超过限定次数不再重启 */ if(++Count.Motor_Restart >= Motor_Restart_Times) { Count.Motor_Restart = Motor_Restart_Times; SYSTEM_STATE = SYS_WAIT; } SYSTEM_STATE = SYS_RUN; MOTOR_STATE = MC_INIT; break; } /* 异常停机 */ case SYS_FAULT: { System_Modules_off(); break; } /* 等待上电重启 */ case SYS_WAIT: { System_Modules_off(); Clear_Fault_Message(); Count.Motor_Restart = 0; SYSTEM_STATE = SYS_RUN; break; } default: break; } }
复制代码

接入电机测试OK!