各位大侠好,我用STM32显示正弦波形在mini开发板的TFTLCD上,我是用打点的方法来显示正弦波的,但是LCD上有画出坐标轴,有显示出频率,幅度。但是当我要显示下一次采集到的点到LCD上的时候,之前显示在LCD上的点又还在LCD上,于是我想在每次显示采样的一组点到LCD上之前都LCD_Clear(BLACK);这个函数,把屏幕清为黑 {MOD}的,这样的话之前的波形就不会一直留着屏幕上了,但是我不想去掉的频率,幅度的显示值又被我LCD_Clear(BLACK);这个函数给清掉了。 我只想清掉我之前画上去的一组正弦波的点,其他地方不想修改的,请问该怎么办呢?求大侠指点。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
void DMA1_Channel1_IRQHandler(void)
{
u16 bc=BLACK,
fc=YELLOW ;
u16 k0, //adc[512],
i=0,
//m=0,
x0,
y0,
x=9,
y=159;
//TIM2->CR1&=~(1<<0); //使能定时器2
tese_FFT() ;
for(K=0;K<200;++K)
{
if(n==1)
{
Gui_DrawPoint(x+K,y-adc[K],bc);
if((K>0)&(K<200)&(adc[K+1]>adc[K]))
for(i=adc[K+1]-adc[K];i>0;i--)
Gui_DrawPoint(x+K+1,y-adc[K+1]+i,bc);
if((K>0)&(K<200)&(adc[K+1]<adc[K]))
for(i=adc[K]-adc[K+1];i>0;i--)
Gui_DrawPoint(x+K+1,y-adc[K+1]-i,bc);
// FFT_Window( 0,100);
}
adc[K]=Buff_MAG[K+1];
Gui_DrawPoint(x+K,y-adc[K],fc);
if((K>1)&(K<200)&(adc[K]>adc[K-1]))
for(i=adc[K]-adc[K-1];i>0;i--)
Gui_DrawPoint(x+K,y-adc[K]+i,fc);
if((K>1)&(K<200)&(adc[K]<adc[K-1]))
for(i=adc[K-1]-adc[K];i>0;i--)
Gui_DrawPoint(x+K,y-adc[K]-i,fc);
}
if(K>=199)
{
FFT_Window( 0,100);
QDTFT_Test_Demo();
n=1;
K=0;
DMA_ClearFlag(DMA1_FLAG_TC1); //clear the flag
}
// TIM2->CR1|=1<<0;
// n=1;
// K=0;
//DMA_ClearFlag(DMA1_FLAG_TC1); //clear the flag
//MYDMA_GOnes(DMA1_Channel1) ;
// ADC1->SQR3|=10<0;
// ADC1->CR2|=1<<0;//开启 AD 转换器
// DMA1_Channel1->CCR|=(1<<0); //开启DMA传输
}
一周热门 更多>