***************************
*基於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 新增乙個串列...