发新帖我要提问
123
返回列表
打印
[应用相关]

如何让stm32中的两个模块代码同时运行

[复制链接]
楼主: flycamelaaa
手机看帖
扫描二维码
随时随地手机跟帖
41
iyoum| | 2025-2-6 17:03 | 只看该作者 回帖奖励 |倒序浏览
RTOS能够提供任务调度功能,使得多个任务(或线程)可以在看似同时的情况下运行。每个模块可以作为一个任务,RTOS负责在任务之间切换,从而实现并发执行。常用的RTOS包括FreeRTOS、RTT(Real-Time Thread)等。

使用特权

评论回复
42
updownq| | 2025-2-6 17:44 | 只看该作者
可以通过时间片轮转或中断机制实现两个模块代码的近似同时运行。

使用特权

评论回复
43
backlugin| | 2025-2-6 20:01 | 只看该作者
利用 STM32 的外部中断、定时器中断等功能,将一个模块的代码放在主循环中执行,另一个模块的代码放在中断服务函数中执行。

使用特权

评论回复
44
可以实用操作系统进行相关的程序操作

使用特权

评论回复
45
天天向善| | 2025-2-7 12:37 | 只看该作者
Rtos的信号量和队列也非常容易使用,适合多任务协作场景。

使用特权

评论回复
46
软核硬核| | 2025-2-8 12:18 | 只看该作者
建议使用中断或dma让模块自己“运行”,而不用主循环盯着它们。

使用特权

评论回复
47
Pretext| | 2025-2-8 12:54 | 只看该作者
如果多个模块并行,建议使用状态机模式,逻辑清晰,可以避免卡死主程序。

使用特权

评论回复
48
星闪动力| | 2025-2-10 07:29 | 只看该作者
重要的是要写好模块之间的接口函数,不要让它们互相“抢夺资源”。

使用特权

评论回复
49
dreamCar| | 2025-2-10 11:41 | 只看该作者
如果你有很高的时间要求,硬件定时器和中断是一个很好的选择。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则