欢迎来到天天文库
浏览记录
ID:57638103
大小:148.66 KB
页数:6页
时间:2020-08-29
《Linux串口测试程序.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*===============================================================================********************linux串口测试代码********************Linux版本号2.6.23.17*程序功能:linux主机UART1接收PCCOM口发送过来的数据,原封不动返回给PC的COM口*已经通过多次测试验证通过。*=================================
2、==============================================*/#include#include#include#include#include#include//gettimeofday()#include//fd_set,select()...#include#include3、ng.h>#include//write()#defineFALSE-1#defineCOM11#defineCOM22intg_PCUART_fd;intdevice_init(void);intuart_init(intCOM,intBAUD,intdatabits,intstopbit,intparitybit);intUART_Sent(intfd,char*send_data,intlen);intUART_Recv(intfd,char*recv_data,intl4、en,longwait_seconds,longwait_usecond);longintget_SencondofDay(void);longintget_msSecondofDay(void);intmain(intargc,char*argv[]){longinttimestamp;//chartest_string[50]="Helloworld!!";chartest_string2[50];charrecv[100];charrecv_len;inti;timestamp=get_5、SencondofDay();device_init();while(1){#if0if(get_SencondofDay()-timestamp>2){#if0test_string2[0]=0xff;test_string2[1]=0xaa;test_string2[2]=0xbb;test_string2[3]=0xff;UART_Sent(g_PCUART_fd,test_string2,4);#elseUART_Sent(g_PCUART_fd,test_string,strlen(te6、st_string));#endiftimestamp=get_SencondofDay();}#endif/*串口发什么数据过来,就回什么数据*/recv_len=UART_Recv(g_PCUART_fd,recv,100,1,0);//等待1sif(recv_len>0){for(i=0;i7、dwhile1?return0;}?endmain?intdevice_init(void){g_PCUART_fd=uart_init(COM1,115200,8,1,'N');if(FALSE==g_PCUART_fd){printf("UARTCOM1initializefail!");}returng_PCUART_fd;}intuart_init(intCOM,intBAUD,intdatabits,intstopbit,intparitybit){intfd_uart;struct8、termiosoptions;if(COM1==COM){fd_uart=open("/dev/ttyS1",O_RDWR9、O_NOCTTY10、O_NONBLOCK);//非阻塞方式打开串口}else{fd_uart=open("/dev/ttyS2",O_RDWR11、O_NOCTTY12、O_NONBLOCK);//非阻塞方式打开串口}if(-1==fd_uart){printf("[fail]Openserialportfail!");goto↓uart_i
3、ng.h>#include//write()#defineFALSE-1#defineCOM11#defineCOM22intg_PCUART_fd;intdevice_init(void);intuart_init(intCOM,intBAUD,intdatabits,intstopbit,intparitybit);intUART_Sent(intfd,char*send_data,intlen);intUART_Recv(intfd,char*recv_data,intl
4、en,longwait_seconds,longwait_usecond);longintget_SencondofDay(void);longintget_msSecondofDay(void);intmain(intargc,char*argv[]){longinttimestamp;//chartest_string[50]="Helloworld!!";chartest_string2[50];charrecv[100];charrecv_len;inti;timestamp=get_
5、SencondofDay();device_init();while(1){#if0if(get_SencondofDay()-timestamp>2){#if0test_string2[0]=0xff;test_string2[1]=0xaa;test_string2[2]=0xbb;test_string2[3]=0xff;UART_Sent(g_PCUART_fd,test_string2,4);#elseUART_Sent(g_PCUART_fd,test_string,strlen(te
6、st_string));#endiftimestamp=get_SencondofDay();}#endif/*串口发什么数据过来,就回什么数据*/recv_len=UART_Recv(g_PCUART_fd,recv,100,1,0);//等待1sif(recv_len>0){for(i=0;i7、dwhile1?return0;}?endmain?intdevice_init(void){g_PCUART_fd=uart_init(COM1,115200,8,1,'N');if(FALSE==g_PCUART_fd){printf("UARTCOM1initializefail!");}returng_PCUART_fd;}intuart_init(intCOM,intBAUD,intdatabits,intstopbit,intparitybit){intfd_uart;struct8、termiosoptions;if(COM1==COM){fd_uart=open("/dev/ttyS1",O_RDWR9、O_NOCTTY10、O_NONBLOCK);//非阻塞方式打开串口}else{fd_uart=open("/dev/ttyS2",O_RDWR11、O_NOCTTY12、O_NONBLOCK);//非阻塞方式打开串口}if(-1==fd_uart){printf("[fail]Openserialportfail!");goto↓uart_i
7、dwhile1?return0;}?endmain?intdevice_init(void){g_PCUART_fd=uart_init(COM1,115200,8,1,'N');if(FALSE==g_PCUART_fd){printf("UARTCOM1initializefail!");}returng_PCUART_fd;}intuart_init(intCOM,intBAUD,intdatabits,intstopbit,intparitybit){intfd_uart;struct
8、termiosoptions;if(COM1==COM){fd_uart=open("/dev/ttyS1",O_RDWR
9、O_NOCTTY
10、O_NONBLOCK);//非阻塞方式打开串口}else{fd_uart=open("/dev/ttyS2",O_RDWR
11、O_NOCTTY
12、O_NONBLOCK);//非阻塞方式打开串口}if(-1==fd_uart){printf("[fail]Openserialportfail!");goto↓uart_i
此文档下载收益归作者所有