火龍果(redpitaya)開發板常用接口C語言開發指南(四)——讀取數字IO狀態(持續更新中)

火龍果(redpitaya)開發板常用接口C語言開發指南(四)——讀取數字IO狀態(持續更新中)


——本人爲《火龍果實戰指南——搭建基於Zynq處理器的測量儀器與創新實踐平臺》一書的作者之一,爲了便於各位快速上手火龍果開發板,現提供部分實戰指南,包含環境配置、源碼、效果等,供大家學習交流使用。

本節將會介紹怎麼讀取火龍果開發板提供的數字接口的狀態,並通過LED量滅以及串口打印方式呈現出來,要從數字IO腳讀取狀態數據,我們首先需要找到數字IO腳的位置。查閱火龍果開發板接口原理圖(如圖1所示),可知E1擴展口3-18均爲數字IO腳,對應開發板位置(如圖2所示)可知數字IO具體位置,找到對應的IO腳,才能進行相應的操作。
圖1
圖1
在這裏插入圖片描述
圖2
連接開發板並在項目文件夾redpitaya下創建DioControlLed.c文件,寫入如下代碼:
在這裏插入圖片描述
庫函數講解
int rp_Init():初始化庫。在其他庫之前,必須先調用它,如果函數成功,返回值是rp_ok,如果函數不成功,返回值爲rp_e中任意一個即代表錯誤發生。
int rp_DpinSetDirection(rp_dpin_t pin, rp_pinDirection_t direction):設置數字IO腳爲輸入還是輸出,LED引腳已自動設置爲輸出且不能將它們設置爲輸入,diox_p和diox_n在使用之前都必須設置採用輸入或者輸出。pin參數設置數字引腳編號,direction參數設置引腳輸入或輸出狀態。如果函數成功,返回值是rp_ok,如果函數不成功,返回值爲rp_e
中任意一個即代表錯誤發生。
int rp_DpinGetState(rp_dpin_t pin, rp_pinState_t* state):獲得數字輸入輸出引腳狀態,pin參數設置數字引腳編號,state參數是指定的引腳的高低狀態。如果函數成功,返回值是rp_ok,如果函數不成功,返回值爲rp_e中任意一個即代表錯誤發生。
int rp_DpinSetState(rp_dpin_t pin, rp_pinState_t state):設置數字IO腳高低狀態,pin參數設置數字引腳編號,state參數是給指定的引腳設置的高低狀態。如果函數成功,返回值是rp_ok,如果函數不成功,返回值爲rp_e
中任意一個即代表錯誤發生。
rp_Release():釋放庫資源,庫不再使用之後放在最後,通常放在應用程序最後。如果函數成功,返回值是rp_ok,如果函數不成功,返回值爲rp_e*中任意一個即代表錯誤發生。
編譯參考命令:

make DioControlLed
cat /opt/redpitaya/fpga/fpga_0.94.bit > /dev/xdevcfg
LD_LIBRARY_PA TH=/opt/redpitaya/lib ./ DioControlLed

此時程序開始運行,初始狀態開發板LED[0]-LED[7]全亮,串口沒有打印輸出,如圖3、4所示。此時我們將DIO4腳與GND短接,發現此時LED4,即爲從左到右第五個燈熄滅,此時串口打印輸出DIO[4] = 0,如圖5、6所示。這意味着通過數字IO讀取狀態並設置LED腳狀態兩個功能的實現。在這裏插入圖片描述
圖3
在這裏插入圖片描述
圖4
在這裏插入圖片描述
圖5
在這裏插入圖片描述
圖6

至此,讀者應該已經完全掌握了數字IO的控制以及讀取功能,具體應用可根據實際項目需求進行開發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章