main.c

来自「基于LPC2119的CAN驱动及例子 循环发送实例程序 简单的CAN中继器实」· C语言 代码 · 共 63 行

C
63
字号
#include "config.h"

#define	TaskStkLengh	64						//定义用户任务的堆栈长度


void TaskUARTtoCANSend (void *pdata);			//CAN发送任务声明
OS_STK	TaskUARTtoCANSendStk [TaskStkLengh];

void TaskCAN1toURATSend (void *pdata);			//UART发送任务声明
OS_STK	TaskCAN1toURATSendStk [TaskStkLengh];	//UART发送任务的堆栈

void TaskCAN2toURATSend (void *pdata);	
OS_STK	TaskCAN2toURATSendStk [TaskStkLengh];

	  
int main()
{

	OSInit ();													
	CAN1Send = OSSemCreate (0);
	CAN2Send = OSSemCreate (0);																
	OSTaskCreate (TaskUARTtoCANSend,(void *)0, &TaskUARTtoCANSendStk[TaskStkLengh - 1], 2);	
	OSTaskCreate (TaskCAN1toURATSend,(void *)0, &TaskCAN1toURATSendStk[TaskStkLengh - 1], 3);
	OSTaskCreate (TaskCAN2toURATSend,(void *)0, &TaskCAN2toURATSendStk[TaskStkLengh - 1], 4);	
	OSStart ();																
}

void TaskUARTtoCANSend (void *pdata)
{
	pdata = pdata;
	TargetInit ();
	T0TCR = 0x01;
	while (1)
	{
		OSTaskSuspend (0x02);
		RS232SendToCAN (SRBuf[1],SRBuf[15] ,&Rs232toCANDataBuf, SRBuf );
	}
}

void TaskCAN1toURATSend (void *pdata)
{
	INT8U	err;
	pdata = pdata;
	while (1)
	{
		OSSemPend (CAN1Send,0,&err);
		if (U0LSR&0x20)
			CANSendToRS232 (CAN1, UART0, &CANRcvCyBufApp[CAN1] );
	}
}

void TaskCAN2toURATSend (void *pdata)
{
	INT8U	err;
	pdata = pdata;
	while (1)
	{
		OSSemPend (CAN2Send,0,&err);
		if (U0LSR&0x20)
			CANSendToRS232 (CAN2, UART0, &CANRcvCyBufApp[CAN2] );
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?