📄 devs.c
字号:
/************************************************************************
* E X T E R N A L R E F E R E N C E S
************************************************************************/
#include <taskLib.h>
#include <logLib.h>
#include <msgQLib.h>
#include <intLib.h>
#include <sysLib.h>
#include <ioLib.h>
#include <iv.h>
#include <string.h>
#include <D:\Tornado2.2\target\config\s3c2410\s3c2410.h>
#include <stdio.h>
int iARMSrlfd[ARMSrlPtNum]; /*file descriptor from which to read */
unsigned char iARMFlag;
/************************************************************************
Function Definition
************************************************************************/
int SendtoARMSrl(int ,unsigned char* , int); /*Send Message to ARM Serial*/
void RecFromARMSrlTask(int); /*Receive Data fron ARM Serial*/
PRIVATE void ARMSrlTxTask(int );
PRIVATE void ARMSrlRxTask(int );
/*************************************************************************************************
Read Message from Serial
*************************************************************************************************/
void RecFromARMSrlTask(int iSrlPort)
{
unsigned char ch;
char str[10];
sprintf(str,"/tyCo/%d",iSrlPort);
if((iARMSrlfd[iSrlPort] = open(str, O_CREAT|O_RDWR, 0)) ==ERROR)
{
printf("RecFromARMSrlTask:Can't Open COM%d\n",iSrlPort);
}
ioctl (iARMSrlfd[iSrlPort], SIO_HW_OPTS_SET,(CLOCAL|CREAD|CS8|PARENB)&~(HUPCL|STOPB|PARODD) );
ioctl (iARMSrlfd[iSrlPort], FIOBAUDRATE, BaudRate);
ioctl (iARMSrlfd[iSrlPort], SIO_MODE_SET, SIO_MODE_INT );
while(1)
{
if( (read(iARMSrlfd[iSrlPort], (unsigned char*)&ch,1) ) == 1 )
{
msgQSend(QQ_MsgQ_SrlRxChar[iSrlPort], &ch, 1, NO_WAIT, MSG_PRI_NORMAL);
}
}
close(iARMSrlfd[iSrlPort]);
}
/*************************************************************************************************
Write Message to Serial
*************************************************************************************************/
int SendtoARMSrl(int iSrlPort , unsigned char* DataBuff, int Length)
{
unsigned int i;
unsigned char ch[256];
ioctl (iARMSrlfd[iSrlPort], SIO_HW_OPTS_SET,(CLOCAL|CREAD|CS8|PARENB)&~(HUPCL|STOPB|PARODD) );
ioctl (iARMSrlfd[iSrlPort], FIOBAUDRATE, BaudRate);
ioctl (iARMSrlfd[iSrlPort], SIO_MODE_SET, SIO_MODE_INT );
/* printf("Sending... ");*/
for(i=0; i<Length; i++)
{
ch[i] = DataBuff[i];
if(write(iARMSrlfd[iSrlPort], (char *)&ch[i], 1) != 1)
{
printf("SendtoARMSrl:Can't Write COM%d\n",iSrlPort);
return -1;
}
/* printf("Group %02x\n", ch[i]);*/
}
/* printf("OK!\n");*/
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -