背景; 正点原子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延时,才能发送。
|