ÎÊÌâÊÇ£ºÎÒ²»ÖªµÀ¸ÃÔÚÄÄÀï´ò¿ª´®¿Ú£¬ÈôÔÚÖ÷Ïß³ÌmainÖдò¿ª£¬ÔòË«·½µÄ¶ÁÏ̶߳¼ÊÕµ½ÂÒÂ룬ͬʱҲ¿ÉÒÔ¼ì²â³öдÏ̷߳¢³öÈ¥µÄ×Ö·ûÒ²ÓÐÒì³££»Èô¶ÁдÏ̸߳÷×Ôµ¥¶À´ò¿ª¹Ø±Õ´®¿Ú£¬ÔòдÏ߳̿ÉÒÔ·¢³ö×Ö·û£¬µ«¶ÁÏß³ÌʼÖÕÎÞ·¨¶Áµ½Êý¾Ý¡£ÄѵÀÊÇÎÒµÄÏß³ÌÓÐÎÊÌ⣿
Ŀǰ±¾ÈËÕý´¦Óڷdz£¿àÄÕÖ®ÖУ¬Çå¸÷λ´óÏÀ°ï棬Ìù³öÎҵĴúÂëÈçÏ£º
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define NUM 20
int fd;
void writeThread(void* arg);
void readThread(void* arg);
/*
int openport(void)
{
// int fd;
struct termios options;
if((fd=open("/dev/tts/0",O_RDWR|O_NOCTTY|O_NONBLOCK|O_NDELAY))==-1)
{
perror("Can't open serial1 port.");
return -1;
}
/* tcgetattr(fd,&options);
cfsetispeed(&options,B9600);
cfsetospeed(&options,B9600);
options.c_cflag|=(CLOCAL|CREAD); //ºöÂÔ¿ØÖÆÐźÅÏߺÍʹÄܶÁ¹¦ÄÜ
options.c_cflag|=PARENB; //ÆæÅ¼¼ìÑé
options.c_cflag&=~PARODD; //żУÑé
options.c_iflag |= (INPCK | ISTRIP);
options.c_cflag|=CSTOPB; //Á½¸öֹͣλ
options.c_cflag&=~CSIZE;
options.c_cflag|=CS8; //8¸öÊý¾Ýλ
options.c_lflag&=~(ICANON|ECHO|ISIG); //ÔʼÊäÈëģʽ
options.c_oflag&=~OPOST; //ÔʼÊä³ö
options.c_cc[VMIN]=0;
options.c_cc[VTIME]=0;
tcsetattr(fd,TCSANOW,&options);
printf("\nfd = %d\n",fd);
return fd;
}
*/
int
main(int argc, char* argv[])
{
int iret;
pthread_t id1, id2;
if((fd=open("/dev/tts/0",O_RDWR|O_NOCTTY|O_NONBLOCK|O_NDELAY))==-1)
{
perror("Can't open serial1 port.");
return -1;
}
iret = pthread_create(&id1, NULL, (void*)readThread, NULL);
if(iret != 0) {
printf("\nthread1_create is failed!\n");
}
iret = pthread_create(&id2, NULL, (void*)writeThread, NULL);
if(iret != 0) {
printf("\nthread1_create is failed!\n");
}
pthread_join(id1, NULL);
pthread_join(id2, NULL);
close(fd);
return 0;
}
void readThread(void* arg)
{
int nread, i;
int rcount = 0;
unsigned char buf[21];
while(1) {
sleep(1);
printf("\nnow it begain to read words.\n");
// printf("\nbefore reading, the words inf buf are %s\n",buf);
nread = read(fd, buf, 20);
if(nread == 20) {
printf("\nnread=%d", nread);
for(i = 0; i < 20; i++) {
printf("%c ", buf[1]);
}
rcount++;
printf("\nreceive packets: %d\n", rcount);
}
}
}
void writeThread(void* arg)
{
int i,j;
int fd;
unsigned char k = 'a';
int m;
int nwrite;
int scount = 0;
unsigned char serialTest[NUM] = {0};
for(m= 0;m
serialTest[m] = k++;
}
/* open serial port */
while(1) {
sleep(1);
fd=open("/dev/tts/0",O_RDWR|O_NOCTTY|O_NONBLOCK|O_NDELAY);
nwrite = write(fd, serialTest, NUM);
write(fd, "\n", 1);
if(nwrite == 20) {
printf("\nwriteRadioFramewriteRadioFramewriteRadioFramewriteRadioFrame\n");
printf("\nnwrite = %d\n", nwrite);
for(j = 0; j< NUM; j++) {
printf("%c ",serialTest[j]);
}
scount++;
printf("\nsend packets: %d \n", scount++);
printf("\nwriteRadioFramewriteRadioFramewriteRadioFramewriteRadioFrame\n");
}
close(fd);
}
}


mg271603433 ÓÚ 2011-01-05 18:25:53·¢±í:
¶¥Ò»¸ö¡£
feng3436 ÓÚ 2010-11-29 11:49:00·¢±í:
֮ǰÓÃÁ½¸öÏ̶߳Áд´®¿Ú³öÏÖµÄÎÊÌ⣺ÔÚд´®¿Úºó²»ÄÜÔÙ¶Á´®¿ÚµÄÎÊÌâ½â¾öÁË£¬
·½·¨ÊÇ£º°ÑÏ̸߳ÄΪÁ½¸ö½ø³Ì£¬·Ö±ð¶Áд
²»¹ýÏ̶߳ÁдµÄ·½·¨»¹ÊÇû¸ãͨ£¬¹À¼ÆÊÇÒòΪÏ̹߳²ÏíÊý¾Ý£¬ÔÚ¶ÁÏß³ÌÔËÐÐºó£¬ÆÆ»µÁ˻ص½Ð´Ïß³ÌËùÒªÇóÂú×ãµÄÌõ¼þ¡£
ËÒª¸ãºÃÁË£¬ÔÚÕâÎÒ·ÖÏíÒ»ÏÂŶ
feng3436 ÓÚ 2010-11-28 20:03:08·¢±í:
ÎÒÒ²ÓÃÁ½Ï߳̽øÐжÁд´®¿Ú£¬Ò²Óöµ½Í¬ÑùµÄÎÊÌ⣬Èô½«³ÌÐòµ¥¶À¶Áд¶¼Õý³££¬ÏȶÁºóдҲÕý³££¬µ«ÔÚдÁËÒ»´Îºó¾Í²»ÄÜÔÙ¶Á´®¿ÚÁË