USMART中函数参数调用测试函数

2019-08-23 16:37发布

//LED状态设置函数
void led_set(u8 sta)
{
        LED1=sta;
}

//函数参数调用测试函数
void test_fun(void(*ledset)(u8),u8 sta)//这个看不明白的
{
        ledset(sta);
}

void LCD_Draw_Circle(u16 x0,u16 y0,u8 r)
{
        int a,b;
        int di;
        a=0;b=r;          
        di=3-(r<<1);             //判断下个点位置的标志
        while(a<=b)
        {
                LCD_DrawPoint(x0+a,y0-b);             //5
                LCD_DrawPoint(x0+b,y0-a);             //0           
                LCD_DrawPoint(x0+b,y0+a);             //4               
                LCD_DrawPoint(x0+a,y0+b);             //6
                LCD_DrawPoint(x0-a,y0+b);             //1      
                LCD_DrawPoint(x0-b,y0+a);            
                LCD_DrawPoint(x0-a,y0-b);             //2            
                  LCD_DrawPoint(x0-b,y0-a);             //7                     
                a++;
                //使用Bresenham算法画圆     
                if(di<0)di +=4*a+6;          
                else
                {
                        di+=10+4*(a-b);   
                        b--;
                }                                                     
        }
}

//函数参数调用测试函数
void test_fun1(void(*LCDDrawCircle)(u16,u16,u8),u16 x0,u16 y0,u8 r)//这个看不明白的
{
        LCDDrawCircle(x0,y0,r);
}

在串口助手调用void led_set(u8 sta),void test_fun(void(*ledset)(u8),u8 sta),void LCD_Draw_Circle(u16 x0,u16 y0,u8 r),这3个正常,
在串口助手调用void test_fun1(void(*LCDDrawCircle)(u16,u16,u8),u16 x0,u16 y0,u8 r),开发板程序卡死,一动不动。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。