[/free][hide=2,money]主函数代码,采集数据进行转换
int main(void)
{
uart_init(115200);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//???????????2
sin_Generation();
GPIO_Configuration();
LED_Init(); //???LED??
TIM3_Int_Init(1,84-1); //1us
DAC_SetChannel1Data(DAC_Align_12b_R, 0);//初始值为0
while(1)
{
if(USART_RX_STA&0x8000)
{
AIG=USART_RX_BUF[0]*256+USART_RX_BUF[1];
VAL=USART_RX_BUF[2]*256+USART_RX_BUF[3];
bb=(AIG/500000.0)*360.0;
sin_Generation();
USART_RX_STA=0;
}
}
}
//定时器函数内的中断代码 主要进行相位角的分割,将电压信号分成一定度数,数值可调
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //????
{
cc=bb+cc;
if((cc>360)||(cc==360)) cc=cc-360;
aa=cc;
//Dac1_Set_Vol(sinTable[aa]);
DAC_SetChannel1Data(DAC_Align_12b_R,vall[aa]);
}
TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //???????
}
//电压部分的分割 进行度数对应电压的数组列表
void sin_Generation(void)
{
u16 n;
float temp;
for(n=0;n<360;n++)
{
temp=(sin(2*PI*n/360)+1)*VAL;
temp/=1000;
vall[n] = temp*4096/3.3;
}
}
[/hide][free]
本主题需向作者支付 2 枚金币 才能浏览 购买主题
看不懂
int main(void)
{
uart_init(115200);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//???????????2
sin_Generation();
GPIO_Configuration();
LED_Init(); //???LED??
TIM3_Int_Init(1,84-1); //1us
DAC_SetChannel1Data(DAC_Align_12b_R, 0);//初始值为0
while(1)
{
if(USART_RX_STA&0x8000)
{
AIG=USART_RX_BUF[0]*256+USART_RX_BUF[1];
VAL=USART_RX_BUF[2]*256+USART_RX_BUF[3];
bb=(AIG/500000.0)*360.0;
sin_Generation();
USART_RX_STA=0;
}
}
}
//定时器函数内的中断代码 主要进行相位角的分割,将电压信号分成一定度数,数值可调
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //????
{
cc=bb+cc;
if((cc>360)||(cc==360)) cc=cc-360;
aa=cc;
//Dac1_Set_Vol(sinTable[aa]);
DAC_SetChannel1Data(DAC_Align_12b_R,vall[aa]);
}
TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //???????
}
//电压部分的分割 进行度数对应电压的数组列表
void sin_Generation(void)
{
u16 n;
float temp;
for(n=0;n<360;n++)
{
temp=(sin(2*PI*n/360)+1)*VAL;
temp/=1000;
vall[n] = temp*4096/3.3;
}
}
[/hide][free]
页:
[1]