->CTRL=0x00; //关闭计数器Р?SysTick->VAL =0X00; //清空计数器Р} Р//延时nusР//nus为要延时的us数. Рvoid delay_us(u32 nus)Р{ Р?u32 temp; Р?SysTick->LOAD=nus*fac_us; //时间加载Р?SysTick->VAL=0x00; //清空计数器Р?SysTick->CTRL=0x01 ; //开始倒数Р?doР?{Р temp=SysTick->CTRL;Р?}Р?while(temp&0x01&&!(temp&(1<<16)));//等待时间到达Р?SysTick->CTRL=0x00; //关闭计数器Р?SysTick->VAL =0X00; //清空计数器Р}Р4、主程序Р#include <stm32f10x_lib.h>Р#include "sys.h" Р#include "delay.h"?Р#include "timer.h" Р#include "huoer.h"Рint main(void)Р{ Р u8 flag; //DA转换过来的调速标志Р Stm32_Clock_Init(9); //系统时钟设置Р?delay_init(72); //延时初始化Р?PWM1_1_Init(900,0); //不分频。PWM频率=72000/900=8KhzР?PWM1_2_Init(900,0);Р?PWM1_3_Init(900,0);Р?PWM1_4_Init(900,0);Р?PWM2_1_Init(900,0);Р?PWM2_2_Init(900,0);Р while(1)Р?{Р switch(flag)Р {Р case 0: PWM1_VAL=900; Р PWM2_VAL=900;Р PWM3_VAL=900;Р PWM4_VAL=900;