【转载】单片机模块化程序9-给单片机写个回调函数怎么样

[复制链接]
 楼主| HuangHongLun 发表于 2019-10-31 20:03 | 显示全部楼层 |阅读模式
一,弄个串口回调  (实际上就是函数指针...)
819239-20191015014859655-1353003673.jpg


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

  2. void UsartCallBackReg(void* Back)
  3. {
  4.     UsartCallBack = Back;//把传过来的指针赋值给 UsartCallBack
  5. }
  1. USART_C_ void(*UsartCallBack)(char data);
  2. void UsartCallBackReg(void* Back);

819239-20191015015232048-1281206146.jpg



819239-20191015015301700-340024475.jpg




实际上就是定义了一个 void(*UsartCallBack)(char data);//定义一个函数指针变量
然后我把一个函数指针赋值给他
他呢在串口里面调用!!!!
其实直接可以

819239-20191015015703964-1198790680.jpg

 楼主| HuangHongLun 发表于 2019-10-31 20:04 | 显示全部楼层
测试:
819239-20191015015822462-75215592.jpg

 楼主| HuangHongLun 发表于 2019-10-31 20:04 | 显示全部楼层
然后呢,写个看着有点水平的
819239-20191015021323170-1735682901.jpg



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


819239-20191015021344779-647635134.jpg


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

819239-20191015021441505-1441046538.jpg



然后主函数
819239-20191015021512497-328471023.jpg




测试
819239-20191015021734630-1835267307.jpg

drer 发表于 2019-11-13 10:45 | 显示全部楼层
非常感谢分享
gwsan 发表于 2019-11-13 10:57 | 显示全部楼层
非常不错的资料
大大的木头 发表于 2020-6-30 16:14 | 显示全部楼层
受教了,非常感谢楼主的分享!
zeshoufx 发表于 2020-6-30 19:00 | 显示全部楼层
HuangHongLun 发表于 2019-10-31 20:04
然后呢,写个看着有点水平的

谢谢分享“给单片机写个回调函数”,,,开始用hal库不懂hal库的组织架构,,,回调函数,,句柄,,看了你的帖子有点启发
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

440

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部