主程序如下:
char *str_light = "LIGHT:";
unsigned char PWM_BUF = 0;
int main(void)
{
PWM_Init();
USART3_TIM2_Init(115200);
while(1)
{
if(RX_SATA == 1)
{
if(strstr(RX_BUF,str_light) != 0)
{
PWM_BUF = ((RX_BUF[6] - 0X30) * 10 + (RX_BUF[7] - 0X30));
TIM_SetCompare1(TIM1,PWM_BUF);
}
RX_SATA = 0;
count = 0;
memset(RX_BUF,0,strlen(RX_BUF));
}
}
}
PWM.c文件
#include "PWM.h"
void PWM_Init(void)
{ GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
//初始化PA8管脚为复用是推挽式输出
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);
RCC_APB2PeriphC