打印
[应用相关]

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

[复制链接]
楼主: flycamelaaa
手机看帖
扫描二维码
随时随地手机跟帖
21
Wordsworth| | 2025-1-23 14:07 | 只看该作者 回帖奖励 |倒序浏览
两个模块代码可以用双缓冲机制,主程序切换处理,效率还挺高的。

使用特权

评论回复
22
Bblythe| | 2025-1-23 14:08 | 只看该作者
如果是通信模块,建议用CAN或者UART带DMA,主程序解放出来,效果很棒。

使用特权

评论回复
23
Pulitzer| | 2025-1-23 14:09 | 只看该作者
RTOS的信号量和队列也很好用,适合多任务协同的场景。

使用特权

评论回复
24
Uriah| | 2025-1-23 14:11 | 只看该作者
写好模块间的接口函数很关键,别让它们互相“抢资源”。

使用特权

评论回复
25
Clyde011| | 2025-1-23 14:12 | 只看该作者
如果用的是STM32CubeIDE,可以看看官方的HAL库例程,里面有模块多任务的实现思路。

使用特权

评论回复
26
V853| | 2025-1-23 21:39 | 只看该作者
同时运行?考虑使用一个操作系统,比如rtt,但是它不是同时运行的

使用特权

评论回复
27
朝生| | 2025-1-24 08:25 | 只看该作者
事实上,如果你支持多线程,你可以同时运行。

使用特权

评论回复
28
AIsignel| | 2025-1-24 10:06 | 只看该作者
应该不可能同时运行它。使用rtos可以大致实现这一点。

使用特权

评论回复
29
AutoMotor| | 2025-1-26 19:17 | 只看该作者
这个应该不行,因为MCU是单线程的

使用特权

评论回复
30
理想阳| | 2025-1-28 09:15 | 只看该作者
它可以和freertos这样的操作系统一起工作,我想它可以

使用特权

评论回复
31
星辰大海不退缩| | 2025-1-30 14:04 | 只看该作者
其实都是时间片进行的一个周期运行

使用特权

评论回复
32
IntelCore| | 2025-2-3 13:53 | 只看该作者
一般来说,它是一种中断,但是选择哪种方法取决于具体的应用要求和系统复杂性

使用特权

评论回复
33
claretttt| | 2025-2-4 17:01 | 只看该作者
在STM32中,要实现两个模块代码的同时运行,可以通过多任务编程的方式来实现。

使用特权

评论回复
34
ccook11| | 2025-2-4 21:02 | 只看该作者
如果你的应用程序不需要RTOS,也可以使用轮询和状态机来“同时”运行两个模块。

使用特权

评论回复
35
pl202| | 2025-2-5 17:43 | 只看该作者
实现一个简单的调度器,通过时间片轮转的方式来轮流执行两个任务。

使用特权

评论回复
36
jdqdan| | 2025-2-5 17:52 | 只看该作者
您可以考虑计时器,但它们不会同时运行

使用特权

评论回复
37
geraldbetty| | 2025-2-5 18:35 | 只看该作者
使能定时器的中断功能,并设置中断优先级。在定时器中断服务程序中编写需要在该定时周期内执行的模块代码。例如,可以使用定时器来控制一个数据采集模块,每隔一定时间采集一次传感器数据。

使用特权

评论回复
38
gygp| | 2025-2-5 19:22 | 只看该作者
如果使用的是支持多线程的库或操作系统,可以创建两个线程,每个线程运行一个模块的代码。

使用特权

评论回复
39
linfelix| | 2025-2-5 21:22 | 只看该作者
RTOS 可以对系统资源进行有效管理,通过任务调度器实现多个任务的并发执行,使两个模块代码能同时运行。

使用特权

评论回复
40
youtome| | 2025-2-6 11:33 | 只看该作者
在STM32中实现两个模块代码同时运行,可以通过多种方法来实现,包括使用定时器中断、多任务调度(如RTOS)、以及合理安排任务的执行顺序。

使用特权

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

本版积分规则