打印
[技术讨论]

STM32 多任务工作独立延时

[复制链接]
317|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liusheng1998|  楼主 | 2023-3-6 20:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景; 正点原子STM32F4开发板 ,keil开发环境 所需外设 CAN 虚拟串口功能需求; 做一个CAN数据回放功能.需要将CAN文件中 多通道的数据文件进行 回放,也就是读取文件 用开发板的CAN外设转发。
问题; 现已设计上位机发送数据到开发板,单通道CAN发送延时都已实现。需要2个CAN同时工作。CAN1 发送后的延时函数 会使CAN2被迫等待。
无法实现同时独立工作,CPU是只能做一个任务,

读取数组
CAN1发送;
延时us;  //延时取决于读取的单项报文的时间戳值
读取数组
CAN2发送
延时us  //延时取决于读取的单项报文的时间戳值

CAN2 的发送必须等待CAN1的延时结束才行,
数据:
通道  延时时间戳        数据
1         200us             data1-----data8
2         218us             data1-----data8
1         278us             data1-----data8
2         278us             data1-----data8
==============================================
我知道 ucos可实现多任务,之前学过忘了,不知道能不能满足我这个需求。我需要的微秒级别的控制
就是任务1 在做300us延时的时候 ,CAN2要执行发送,而不是等待300us延时,才能发送。

使用特权

评论回复

相关帖子

沙发
liusheng1998|  楼主 | 2023-3-6 20:19 | 只看该作者
或者其他的办法,让单片机在做延时的时候去 执行其他任务,

使用特权

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

本版积分规则

8

主题

70

帖子

1

粉丝