一,弄个串口回调  (实际上就是函数指针...)

单片机模块化程序:  给单片机写个回调函数怎么样_指针变量

 

 

 

void(*UsartCallBack)(char data);//定义一个函数指针变量

void UsartCallBackReg(void* Back)
{
    UsartCallBack = Back;//把传过来的指针赋值给 UsartCallBack
}

 

单片机模块化程序:  给单片机写个回调函数怎么样_指针变量_02

 

 

USART_C_ void(*UsartCallBack)(char data);
void UsartCallBackReg(void* Back);

 

 

单片机模块化程序:  给单片机写个回调函数怎么样_赋值_03

 

 

 

单片机模块化程序:  给单片机写个回调函数怎么样_串口_04

 

 

 

 

实际上就是定义了一个 void(*UsartCallBack)(char data);//定义一个函数指针变量

然后我把一个函数指针赋值给他

他呢在串口里面调用!!!!

其实直接可以

 

单片机模块化程序:  给单片机写个回调函数怎么样_指针变量_05

 

 

 

 

测试:

单片机模块化程序:  给单片机写个回调函数怎么样_主函数_06

 

 

 

 

然后呢,写个看着有点水平的

单片机模块化程序:  给单片机写个回调函数怎么样_指针变量_07

 

 

 

typedef void(*UsartCallBack)(char data);//定义一个函数指针类型 UsartCallBack
void UsartCallBackReg(UsartCallBack Back);

 

单片机模块化程序:  给单片机写个回调函数怎么样_指针变量_08

 

 

 

UsartCallBack CallBack;//定义一个无返回值,带一个参数的函数指针变量
void UsartCallBackReg(UsartCallBack Back)
{
    CallBack = Back;
}

 

单片机模块化程序:  给单片机写个回调函数怎么样_主函数_09

 

 

 

然后主函数

单片机模块化程序:  给单片机写个回调函数怎么样_主函数_10

 

 

 

 

测试

单片机模块化程序:  给单片机写个回调函数怎么样_指针变量_11