📄 070204_wd_ready.c
字号:
#include <ioLib.h>
#include <stdio.h>
#include <taskLib.h>
#include <sioLib.h>
#include <logLib.h>
#include <wdLib.h>
#include <sysLib.h>
WDOG_ID wdSend;
#define TPRI_SEND 106
#define TPRI_RECV 102
#define USER_STACK_SIZE 0X2000
#define BAUDRATE 19200
void tySend(int fd);
void tyRecv(int fd);
void initSend(int fd);
int testMain()
{
int com1_Fd/*,com2_Fd*/;
com1_Fd = open("/tyCo/0",2,0) ; /* 打开串口0,即serial<->com1 */
/* com2_Fd = open("/tyCo/1",2,0); */
/* 设置串口0的波特率19200,8数据为,1停止位,无校验位 */
if ( ERROR==ioctl(com1_Fd,FIOBAUDRATE,BAUDRATE) )
{
printf("com1 can not set BAUDRATE!\n") ;
return ERROR ;
}
if ( ERROR==ioctl(com1_Fd,SIO_HW_OPTS_SET,(CLOCAL|CREAD|CS8)&~(HUPCL|STOPB|PARENB)))
{
printf("can not set OPT!\n") ;
return ERROR ;
}
ioctl(com1_Fd,FIOFLUSH,0);
/*
if ( ERROR==ioctl(com2_Fd,FIOBAUDRATE,BAUDRATE) )
{
printf("com2 can not set BAUDRATE!\n") ;
return ERROR ;
}
if ( ERROR==ioctl(com2_Fd,SIO_HW_OPTS_SET,(CLOCAL|CREAD|CS8)&~(HUPCL|STOPB|PARENB)))
{
printf("can not set OPT!\n") ;
return ERROR ;
}
ioctl(com2_Fd,FIOFLUSH,0);
*/
/* 发起接受数据的任务 */
/* taskSpawn("recv",TPRI_RECV,0,USER_STACK_SIZE,(FUNCPTR)tyRecv,com1_Fd,0,0,0,0,0,0,0,0,0);*/
/* 发起发送数据的任务*/
taskSpawn("send",TPRI_SEND,0,USER_STACK_SIZE,(FUNCPTR)initSend,com1_Fd,0,0,0,0,0,0,0,0,0);
return OK;
}
void initSend(int fd)
{
wdSend = wdCreate();
wdStart(wdSend, sysClkRateGet(),(FUNCPTR)tySend,fd);
}
void tySend(int fd)
{
/* int i=0;*/
int wrtCount;
unsigned char buff[94]={0x7e,0x7e,0x01}; /* 发送内容 */
buff[93] = 0xff;
wdStart(wdSend, sysClkRateGet(),(FUNCPTR)tySend,fd);
buff[4] = 0x40;
buff[5] = 0x45;
wrtCount = write(fd,buff,sizeof(buff));
/* printf("write %d bytes to com1\n",wrtCount);
printf("%d\n",++i);
*/
logMsg("write %d bytes to com1\n",wrtCount,0,0,0,0,0) ;
}
void tyRecv(int fd)
{
int readCnt1;
unsigned char rd;
unsigned char buff[1024];
int i,j;
FOREVER
{
i=0;
taskDelay(1);
ioctl(fd,FIONREAD,(int) &readCnt1); /* 判断接收数据缓冲区是否有数据到来 */
if(readCnt1>0)
{
while(readCnt1>0)
{
read(fd,&rd,1);
readCnt1--;
buff[i++]=rd;
}
printf("read %d chars\n",i);
for(j=0;j<94;j++)
printf("%02x",buff[j]);
printf("\n");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -