[应用相关] 如何让stm32中的两个模块代码同时运行

[复制链接]
8087|71
Wordsworth 发表于 2025-1-23 14:07 | 显示全部楼层
两个模块代码可以用双缓冲机制,主程序切换处理,效率还挺高的。
Bblythe 发表于 2025-1-23 14:08 | 显示全部楼层
如果是通信模块,建议用CAN或者UART带DMA,主程序解放出来,效果很棒。
Pulitzer 发表于 2025-1-23 14:09 | 显示全部楼层
RTOS的信号量和队列也很好用,适合多任务协同的场景。
Uriah 发表于 2025-1-23 14:11 | 显示全部楼层
写好模块间的接口函数很关键,别让它们互相“抢资源”。
Clyde011 发表于 2025-1-23 14:12 | 显示全部楼层
如果用的是STM32CubeIDE,可以看看官方的HAL库例程,里面有模块多任务的实现思路。
V853 发表于 2025-1-23 21:39 | 显示全部楼层
同时运行?考虑使用一个操作系统,比如rtt,但是它不是同时运行的
朝生 发表于 2025-1-24 08:25 | 显示全部楼层
事实上,如果你支持多线程,你可以同时运行。
AIsignel 发表于 2025-1-24 10:06 | 显示全部楼层
应该不可能同时运行它。使用rtos可以大致实现这一点。
AutoMotor 发表于 2025-1-26 19:17 | 显示全部楼层
这个应该不行,因为MCU是单线程的
理想阳 发表于 2025-1-28 09:15 | 显示全部楼层
它可以和freertos这样的操作系统一起工作,我想它可以
星辰大海不退缩 发表于 2025-1-30 14:04 | 显示全部楼层
其实都是时间片进行的一个周期运行
IntelCore 发表于 2025-2-3 13:53 | 显示全部楼层
一般来说,它是一种中断,但是选择哪种方法取决于具体的应用要求和系统复杂性
claretttt 发表于 2025-2-4 17:01 | 显示全部楼层
在STM32中,要实现两个模块代码的同时运行,可以通过多任务编程的方式来实现。
ccook11 发表于 2025-2-4 21:02 | 显示全部楼层
如果你的应用程序不需要RTOS,也可以使用轮询和状态机来“同时”运行两个模块。
pl202 发表于 2025-2-5 17:43 | 显示全部楼层
实现一个简单的调度器,通过时间片轮转的方式来轮流执行两个任务。
jdqdan 发表于 2025-2-5 17:52 | 显示全部楼层
您可以考虑计时器,但它们不会同时运行
geraldbetty 发表于 2025-2-5 18:35 | 显示全部楼层
使能定时器的中断功能,并设置中断优先级。在定时器中断服务程序中编写需要在该定时周期内执行的模块代码。例如,可以使用定时器来控制一个数据采集模块,每隔一定时间采集一次传感器数据。
gygp 发表于 2025-2-5 19:22 | 显示全部楼层
如果使用的是支持多线程的库或操作系统,可以创建两个线程,每个线程运行一个模块的代码。
linfelix 发表于 2025-2-5 21:22 | 显示全部楼层
RTOS 可以对系统资源进行有效管理,通过任务调度器实现多个任务的并发执行,使两个模块代码能同时运行。
youtome 发表于 2025-2-6 11:33 | 显示全部楼层
在STM32中实现两个模块代码同时运行,可以通过多种方法来实现,包括使用定时器中断、多任务调度(如RTOS)、以及合理安排任务的执行顺序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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