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

2021-08-02 21:20:08 字數 1425 閱讀 1663

這裡對串列埠的使用不在於控制,僅僅在於對字串的列印,以及對鍵盤輸入字元的判斷和操作

在c語言中我們熟用printf和scanf來列印資訊和獲得資訊,在串列埠使用中就要編寫這兩個函式,移植對應函式需要的檔案。有lib資料夾和include資料夾

首先對main函式進行編寫,主要就是對printf,scanf的呼叫來實現選擇型控制台。

void gboot_main()

} }

接下來就是實現printf函式,新建printf.c,並且在makefile裡面新增printf.o檔案用來鏈結

先來看一下printf的格式,用man 3 printf指令可以檢視

這裡可以看出printf格式為int printf(const char *format, ...);這裡的...表示引數個數不確定。在c語言裡printf往往可以顯示變數,用%d,%c,%f等等,但是我們要用以前編寫的putc函式顯示的話,就必須時字元,所以這裡先把要輸出的呢榮全部轉化為字元形式。然後再用putc輪流輸出。

int printf(const char *fmt, ...)

return i; }

這裡面的第一步以及

va_list args無法實現,是因為沒有新增對應需要的檔案,所以接下來就來新增檔案,

往根目錄裡面的makefile修改,新增lib/lib.o來應用資料夾lib下的檔案,

在新增如下

cflags :=-fno-builtin -i$(shell pwd)/include

export cflags

這裡面(shell pwd)/是自動查詢並應用該目錄的寫法,在輸出cflags

lib/lib.o由lib資料夾下的makefile生成,所以

lib/lib.o :

make -c lib all

執行清除工作

make -c lib clean

這樣,printf函式就可以用了

與此類似,scanf,只不過這裡先讀取字串,再把字串中的數轉化出來

int scanf(const char* fmt, ...)

else 

} //2.格式轉換

va_start(args,fmt);

vsscanf((char *)inbuf,fmt,args);

va_end(args);

return i; }

編寫好scanf和printf之後就是main函式的事了

面函式怎麼設計就很方便了

還有一點與我以前寫c語言程式的不同在於,回車,先看看別人寫的,感覺比較清楚

換行符『\n』和回車符『\r』

看完後就會發現為什麼換行要加\n\r,這裡與以前c語言不同,因為是串列埠傳送,實際是傳送ascii碼,所以。。。。

得到的結果就是

lib資料夾

include資料夾

基於OK6410的串列埠資料收發

基於ok6410的串列埠程式 2012.12.4 孫旭 include include include include include include include include include 串列埠設定,串列埠,波特率,資料位,奇偶校驗,停止位 intset baudrate intfd,i...

linux之GPIO的使用 OK6410

s3c6410的 gpio 引腳相對來說比較多,而且大部分引腳都具有多重複用功能,如何在 linux 上用最簡單的方式來控制 gpio 這需要我們好好研究一下底層的 了,其實方法有很多種,鑑於在作業系統端控制 gpio 並不像控制傳統的微控制器那樣。這裡我將提及一種方法來講述,這種方法也是我至今看到...

OK6410開發環境的搭建

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