基於OK6410的串列埠資料收發

2021-07-11 05:18:53 字數 2103 閱讀 4919

***************************  

*基於ok6410的串列埠程式  

*2012.12.4  

*孫旭  

***************************/  

#include

#include

#include

#include

#include

#include

#include

#include

#include

/*串列埠設定,"串列埠,波特率,資料位,奇偶校驗,停止位"*/

intset_baudrate(

intfd,

intnspeed, 

intnbits, 

char

nevent, 

intnstop)  

bzero( &newtio, sizeof

( newtio ) );  

//設定字元大小

newtio.c_cflag  |=  clocal | cread;  

newtio.c_cflag &= ~csize;  

//資料位的設定

switch

( nbits )  

//奇偶校驗的設定

switch

( nevent )  

//波特率的設定

switch

( nspeed )  

//停止位的設定

if( nstop == 1 )  

newtio.c_cflag &=  ~cstopb;  

else

if( nstop == 2 )  

newtio.c_cflag |=  cstopb;  

//設定等待時間和最小接收字元

newtio.c_cc[vtime]  = 0;  

newtio.c_cc[vmin] = 0;  

//處理為接收字元

tcflush(fd,tciflush);  

//啟用新配置

if((tcsetattr(fd,tcsanow,&newtio))!=0)  

return

0;  

}  /*資料解析*/

intanalysis_data(

char

buf[100])  

/*波特率為115200串列埠0*/

intserial_port0(

void

)    

//串列埠,波特率,資料位,奇偶校驗,停止位

return_value = set_baudrate(fd_port,115200,8,'n'

,1);  

if(-1 == return_value)  

//接收串列埠0的資料

while

(1)  

if(0 > analysis_data(buf))  

return

-1;  

memset(buf,0,100);  

}  close(fd_port);  

return

1;  

}  /*波特率為4800串列埠1*/

intserial_port1(

void

)    

//串列埠,波特率,資料位,奇偶校驗,停止位

return_value = set_baudrate(fd_port,4800,8,'n'

,1);  

if(-1 == return_value)  

//接收串列埠1的資料

while

(1)  

if(0 > analysis_data(buf))  

return

-1;  

memset(buf,0,100);  

}  close(fd_port);  

return

1;  

}  /*主函式*/

intmain(

void

)    

if(0 > serial_port1())  

return

0;  

}  

對於串列埠的使用(基於OK6410的串列埠

這裡對串列埠的使用不在於控制,僅僅在於對字串的列印,以及對鍵盤輸入字元的判斷和操作 在c語言中我們熟用printf和scanf來列印資訊和獲得資訊,在串列埠使用中就要編寫這兩個函式,移植對應函式需要的檔案。有lib資料夾和include資料夾 首先對main函式進行編寫,主要就是對printf,sc...

OK6410開發環境的搭建

1 製作sd卡啟動卡 sd 過讀卡器插入pc機的usb口,快速格式化sd卡,設為fat32模式。用管理員模式開啟sd write.exe。按照步驟製作好sd啟動卡。2 設定為sd卡啟動 sd卡插入ok6410開發板,然後設定撥碼開關調為sd卡啟動。3 設定好串列埠通訊 連線好串列埠線,開啟 moba...

自己建立最簡單的系統(基於ok6410的)

這裡包括兩部分 首先建立最簡單的板檔案 讓板檔案掛在檔案系統 啟動系統。宣告 本文是之前寫的了,在飛凌論壇發表,現在拿在這裡共享一下。一 在arch arm mach s3c64xx 目錄下建立ok6410.c檔案 1 新增標頭檔案 把mach smdk6410裡的標頭檔案複製過來 2 新增乙個串列...