硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1115|回复: 4
收起左侧

一直get不到回调

[复制链接]

33

主题

192

回帖

291

积分

高级会员

积分
291
发表于 2024-7-8 10:20:51 | 显示全部楼层 |阅读模式
以前是弄java的 现在同时搞STM32
一直没get到STM32的点,回调啊,任务调度啊之类的。
老是被人说写的跟流水账似得,一定要执行完1才能执行2么,就不能让他一直执行么。用全局状态么。让我想想状态机。

我哪里知道这些哦,都没人教,C也是完全靠自学的。

原先是这么写的:
按照顺序 初始化、读传感器、联网、上传数据、断网、设置闹钟、进入休眠状态...


现在就是让我这么写,问就是让我自己查资料:
[C] 纯文本查看 复制代码
uint8_t flag1, flag2, flag3;

while (1) {
  hander1();
  hander2();
  hander3();
}
void hander1()
{
  if (flag1)
  {
  }
}

void hander1()
{
  if (flag2)
  {
  }
}

void hander1()
{
  if (flag3)
  {
  }
}



这种写法有什么说法吗?有相关资料参考么

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-7-8 18:16:36 | 显示全部楼层
下载我们开源TOOL APP V1.X工程,这个就是个裸机的经典工程,纯裸机的,没有使用OS,主要是状态机机制。
https://www.armbbs.cn/forum.php? ... &highlight=2.25


回复

使用道具 举报

33

主题

192

回帖

291

积分

高级会员

积分
291
 楼主| 发表于 2024-7-9 08:47:35 | 显示全部楼层
eric2013 发表于 2024-7-8 18:16
下载我们开源TOOL APP V1.X工程,这个就是个裸机的经典工程,纯裸机的,没有使用OS,主要是状态机机制。
h ...

感谢,我看看
回复

使用道具 举报

23

主题

335

回帖

404

积分

高级会员

积分
404
发表于 2024-7-9 09:58:30 | 显示全部楼层
本帖最后由 tovinz 于 2024-7-9 17:49 编辑

回调和钩子的手法在框架里比较常用,比如手里的STM32的HAL库、RTOS、GUI库,回调就用的特别多。
为什么要用回调,因为开发框架的不知道实际开发应用的开发者具体会做什么,所以在代码的某个执行点放置一个钩子,一般是一个函数指针。
应用开发者将这个函数指针指向自己的代码就是注册回调。这样在执行到这个位置时就会调用应用开发自己的功能。
当然在这里我没有完全区分钩子(hook)和回调(callback)的概念。

对于早期自己写的代码,一般都没有这种概念,都是想怎么写怎么写,怎么舒服怎么来。但开发框架时需要考虑各种各样的需求了...
回复

使用道具 举报

33

主题

192

回帖

291

积分

高级会员

积分
291
 楼主| 发表于 2024-7-9 10:38:47 | 显示全部楼层
tovinz 发表于 2024-7-9 09:58
回调和钩子的手法在框架里比较常用,比如手里的STM32的HAL库、RTOS、GUI库,回调就用的特别多。
为什么要 ...

非常感谢
现在理解回调函数了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 03:21 , Processed in 0.227030 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表