STM32F1XX实现sin函数PWM输出代码

//产生正弦值的函数
#include "math.h"
void CreateSin(uint32_t T,uint8_t repeatTime,TIM_HandleTypeDef * htimx,TIM_TypeDef * timx)
{
	static float Y=0,X=0;
	static uint32_t flag=0;
	//设置分频数
	if(flag==0)
		{//这个数不是指针无法发挥效果
		timx->PSC=T*HAL_RCC_GetSysClockFreq()/(float)(htimx->Init.Period)/repeatTime;		
	}
	flag++;if(flag==65536*65536-1)flag=1;
	Y=sin(X)*htimx->Init.Period;
	if(X>3.1415926)X=0;
	X+=T/(float)repeatTime;
	__HAL_TIM_SET_COMPARE(htimx,TIM_CHANNEL_2, Y);
}

你可能感兴趣的:(stm32,javascript,前端)