freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

tcpip與rs232協(xié)議轉(zhuǎn)換器的設(shè)計(jì)-資料下載頁

2024-11-16 17:10本頁面

【導(dǎo)讀】設(shè)計(jì)題目:TCP/IP與RS232協(xié)議轉(zhuǎn)換器的設(shè)計(jì)(軟件)

  

【正文】 試。對于網(wǎng)絡(luò)套接字的編程,驅(qū)動(dòng)程序提供的 API 函數(shù) ,由于不兼容性,在參考資料里又沒有一本系統(tǒng)的書,所以編程很困難,對調(diào)試要求就更高。但通過自己對嵌入式開發(fā)經(jīng)驗(yàn) 的不斷積累,在孫老師的幫助下,問題不斷得到解決。 本次設(shè)計(jì)主要是 參考杭州立宇泰電子有限公司的 ARMSYSC開發(fā)板設(shè)計(jì)完成的 ,主要的創(chuàng)新點(diǎn)在: ( 1) 采用了 uclinux 作為操作系統(tǒng)進(jìn)行嵌入式系統(tǒng)開發(fā)。 ( 2) 借助 串口擴(kuò) 展芯片 GM8123, 提出了多串口服務(wù)器的編思想。 七 致謝 在設(shè)計(jì)和論文成文的過程中, 由于初次用嵌入式系統(tǒng)進(jìn)行開發(fā),遇到了不少問難,在 孫江波老師和楊昌老師的大力支持和幫助,才得以順利完成,在次表示深深感謝! 在畢業(yè)設(shè)計(jì)期間,和張超同學(xué)每天堅(jiān)持 學(xué)習(xí),同時(shí)還教會(huì)了很多 linux 操作系統(tǒng)的知識,還有 宿友 王飛 同學(xué)也給予了大力的支持和幫助,在次 也一并表示感謝! 武漢工業(yè)學(xué)院 2020 畢業(yè)論文 第 27 頁 共 35 頁 八 附錄 TCP/IP 與 RS232 協(xié)議轉(zhuǎn)換 程序 : includesys/ includesys/ includesys/ includesys/ includesys/ includesys/ includei/ includearpa/ includei/ include include include include include include include include // include include include include include include include include define PORT 0 define MAX_MSG_SIZE 100 define BAUDRATE B115200 char msg[MAX_MSG_SIZE]。 int fd_uart, fd_server。 pthread_t id_fromuart, id_from。 // creat two pthread struct sockaddr_in serverAddr, clientAddr。 pthread_mutex_t mutex。 // 自旋鎖 武漢工業(yè)學(xué)院 2020 畢業(yè)論文 第 28 頁 共 35 頁 /* 函數(shù)名稱: Uart_open() 函數(shù)功能: 傳遞參數(shù): no */ void Uart_open(void) { fd_uart = open(/dev/ttyS0, O_RDWR | O_NOCTTY)。 // if (fd_uart 0) { printf(uart0 open error!\n )。 exit(1)。 } else { printf(uart0 open success!\n)。 } } /* 函數(shù)名稱: Uart_init() 函數(shù)功能: set speed, boardrate , mask ,long 傳遞參數(shù): no */ void Uart_init(void) { struct termios oldtio,newtio。 //***********************************// tcgetattr(fd_uart, amp。oldtio)。 cfmakeraw(amp。oldtio)。 //*********************************// bzero(amp。newtio,sizeof(struct termios))。 |= (CLOCAL | CREAD)。 |=BAUDRATE。 amp。=~CSTOPB。 amp。=~PARENB。 amp。=~CSIZE。 |=CS8。 amp。=~CRTSCTS。 =0。 =0。 武漢工業(yè)學(xué)院 2020 畢業(yè)論文 第 29 頁 共 35 頁 [VMIN]=4。 [VTIME]=0。 amp。=~(IXON|IXOFF|IXANY)。 //********************set ttyS0 port baudrate*****************// cfsetispeed(amp。newtio, BAUDRATE)。 cfsetospeed(amp。newtio, BAUDRATE)。 tcsetattr(fd_uart, TCSANOW, amp。newtio)。 // choice a new config and make it work immediatly tcflush(fd_uart, TCIFLUSH)。 } /* 函數(shù)名稱: Socket_open( ) 函數(shù)功能: built UDP socket 傳遞參數(shù): */ void Socket_open(void) { /* built UDP socket*/ fd_server = socket(AF_INET, SOCK_DGRAM, 0)。 //usr udp protocol if((fd_server) 0) { printf(uart0 open error!\n)。 exit(1)。 } else { printf(uart0 open success!\n)。 } } /* 函數(shù)名稱: socket_init() 函數(shù)功能: set broadcast mode , and blid ip and port0, 傳遞參數(shù): */ void socket_init(void) { int socket_status, ipaddr_status。 // struct sockaddr_in serverAddr, clientAddr。 int addr_len =sizeof(struct sockaddr_in)。 int option = 1。 char buffer[256]。 武漢工業(yè)學(xué)院 2020 畢業(yè)論文 第 30 頁 共 35 頁 bzero(amp。serverAddr, sizeof(serverAddr))。 = AF_INET。 = htons(PORT)。 = htonl(INADDR_ANY)。 // = i_addr(SERVER_IP)。 // set client broadcast mode bzero(amp。clientAddr, sizeof(clientAddr))。 = AF_INET。 = htons(PORT)。 = htonl(INADDR_BROADCAST)。 // set server use broadcast mode socket_status = setsockopt(fd_server, SOL_SOCKET, SO_BROADCAST, (char)amp。option, sizeof(option))。 //set broadcast mode if(socket_status == 1) { printf(setsocketopt() call fail !\n)。 exit(1)。 } socket_status = bind(fd_server, (struct sockaddr *) amp。serverAddr, addr_len)。 if(socket_status == 1) { printf(bind () call fail !\n)。 exit(1)。 } } /* 函數(shù)名稱: Read_fro_uart_to_( ) 函數(shù)功能: This is one pthread function . receive char from uart ,and send these char to 傳遞參數(shù): */ void * Read_fro_uart_to_(void) { char * buffer。 int packet_len, ret, ncount。 packet_len = 256。 buffer = malloc(packet_len)。 if (buffer 0) {printf(malloc buffer creat fail \n)。 武漢工業(yè)學(xué)院 2020 畢業(yè)論文 第 31 頁 共 35 頁 exit(1)。 } while(1) { pthread_mutex_lock (amp。mutex)。 // open lock incase the cpu is used by only pthread printf(ready for receive datd .........\n)。 ret = read(fd_uart, buffer, 1)。 // receive data if (ret == 1) { printf(receive data fail \n)。 exit(1)。 } //*****************start receive data ********************// while(*buffer != 39。\n39。) { ncount ++。 buffer ++。 ret = read(fd_uart, buffer, 1)。 if (ret == 1) { printf(receive data fail \n)。 exit(1)。 } } ret = sendto(fd_server, buffer, ncount, 0, (struct sockaddr *) amp。clientAddr, sizeof(clientAddr))。 if (ret == 1 ) { printf(sed message fail \n)。 exit( 1)。 } pthread_mutex_unlock (amp。mute
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1