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),开发板程序卡死,一动不动。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-08-23 19:59
wyudcl 发表于 2017-3-27 23:14
有获取ID的。
现在这个也出问题:SPI_Flash_Write("TEXT_Buffer",0X7FFF9C,0XB)fe:7ff,这个执行正确, ...

这是串口打印的擦除的扇区编号。
正点原子
2楼-- · 2019-08-23 22:39
LCDDrawCircle,你获取ID了么?
wyudcl
3楼-- · 2019-08-24 01:44
 精彩回答 2  元偷偷看……

一周热门 更多>