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

正文內(nèi)容

嵌入式系統(tǒng)實(shí)驗(yàn)-資料下載頁

2024-11-18 23:56本頁面
  

【正文】 :波特率設(shè)置:下面是修改波特率的代碼: struct termios Opt。tcgetattr(fd, amp。Opt)。cfsetispeed(amp。Opt,B19200)。/*設(shè)置為19200Bps*/ cfsetospeed(amp。Opt,B19200)。tcsetattr(fd,TCANOW,amp。Opt)。校驗(yàn)位和停止位的設(shè)置: 無效驗(yàn) 8位 amp。= ~PARENB。 amp。= ~CSTOPB。 amp。= ~CSIZE。 |= ~CS8。奇效驗(yàn)(Odd)7位 |= ~PARENB。 amp。= ~PARODD。 amp。= ~CSTOPB。 amp。= ~CSIZE。 |= ~CS7。偶效驗(yàn)(Even)7位 amp。= ~PARENB。 |= ~PARODD。 amp。= ~CSTOPB。 amp。= ~CSIZE。 |= ~CS7。Space效驗(yàn) 7位 amp。= ~PARENB。 amp。= ~CSTOPB。 amp。= amp。~CSIZE。 |= CS8。設(shè)置停止位:1位: amp。= ~CSTOPB。2位: |= CSTOPB。需要注意的是,如果不是開發(fā)終端之類的,只是串口傳輸數(shù)據(jù),而不需要串口來處理,那么使用原始模式(Raw Mode)方式來通訊,設(shè)置方式如下: amp。= ~(ICANON | ECHO | ECHOE | ISIG)。/*Input*/ amp。= ~OPOST。/*Output*/ 5讀寫串口設(shè)置好串口之后,讀寫串口就很容易了,把串口當(dāng)作文件讀寫就可以了。發(fā)送數(shù)據(jù):char buffer[1024]。int Length=1024。int nByte。nByte = write(fd, buffer ,Length)讀取串口數(shù)據(jù):使用文件操作read函數(shù)讀取,如果設(shè)置為原始模式(Raw Mode)傳輸數(shù)據(jù),那么read函數(shù)返回的字符數(shù)是實(shí)際串口收到的字符數(shù)??梢允褂貌僮魑募暮瘮?shù)來實(shí)現(xiàn)異步讀取,如ftl,或者select等來操作。char buff[1024]。int Len=1024。int readByte = read(fd, buff, Len)。6關(guān)閉串口關(guān)閉串口就是關(guān)閉文件。close(fd)。7空MODEM通訊連接電纜一般進(jìn)行串口調(diào)試使用空MODEM連接電纜,其接線方式如下圖24所示:圖24 實(shí)用RS232C通訊連線六、實(shí)驗(yàn)步驟,使用vi編輯器或其他編輯器閱讀理解源代碼。運(yùn)行make產(chǎn)生term可執(zhí)行文件切換到mini終端窗口,使用NFS mount開發(fā)主機(jī)的/arm2410到/host目錄。進(jìn)入expbasic3_tty目錄,運(yùn)行term,觀察運(yùn)行結(jié)果的正確性。由于內(nèi)核已經(jīng)將串口1 作為終端控制臺(tái),所以可以看到term發(fā)出的數(shù)據(jù),卻無法看到開發(fā)主機(jī)發(fā)來的數(shù)據(jù),可以使用另外一臺(tái)主機(jī)連接串口2進(jìn)行收發(fā)測試。,再次運(yùn)行調(diào)試,加深對串口編程的理解。:include include include include include include define BAUDRATE B115200 define COM1 “/dev/ttyS0” define COM2 “/dev/ttyS1” define ENDMINITERM 27 /* ESC to quit miniterm */ define FALSE 0 define TRUE 1volatile int STOP=FALSE。volatile int fd。void child_handler(int s){ printf(“stop!!n”)。STOP=TRUE。}/**/ void* keyboard(void * data){ int c。for(。){c=getchar()。if(c== ENDMINITERM){ STOP=TRUE。break。} }return NULL。} /**/ /* modem input handler */ void* receive(void * data){ int c。printf(“read modemn”)。while(STOP==FALSE){ read(fd,amp。c,1)。/* port */ write(1,amp。c,1)。/* stdout */ } printf(“exit from reading modemn”)。return NULL。} /**/ void* send(void * data){ int c=39。039。printf(“send datan”)。while(STOP==FALSE)/* modem input handler */ { c++。c %= 255。write(fd,amp。c,1)。/* stdout */ usleep(100000)。} return NULL。/* wait for child to die or it will bee a zombie */ } /**/ int main(int argc,char** argv){struct termios oldtio,newtio,oldstdtio,newstdtio。struct sigaction sa。int ok。pthread_t th_a, th_b, th_c。void * retval。if(argc 1)fd = open(COM2, O_RDWR)。elsefd = open(COM1, O_RDWR)。//| O_NOCTTY |O_NONBLOCK)。if(fd = child_handler。 = 0。sigaction(SIGCHLD,amp。sa,NULL)。/* handle dying child */ pthread_create(amp。th_a, NULL, keyboard, 0)。pthread_create(amp。th_b, NULL, receive, 0)。pthread_create(amp。th_c, NULL, send, 0)。pthread_join(th_a, amp。retval)。pthread_join(th_b, amp。retval)。pthread_join(th_c, amp。retval)。tcsetattr(fd,TCSANOW,amp。oldtio)。/* restore old modem setings */ tcsetattr(0,TCSANOW,amp。oldstdtio)。/* restore old tty setings */ close(fd)。exit(0)。}七、心得體會(huì)通過本次實(shí)驗(yàn),我了解在linux環(huán)境下串行程序設(shè)計(jì)的基本方法,對它的操作有了更深入的認(rèn)識(shí)。我了解到了實(shí)踐的重要性。概念固然重要,但是只有用軟件真正地實(shí)踐過,才能發(fā)現(xiàn)問題,分析問題,最終解決問題。
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1