一起学nRF51xx 1 - GPIO
一起學nRF51xx 1 -? GPIO
張十三
?
前言
上圖是以這32個GPIO引腳中的GPIO 0為例介紹GPIO的結構。每一個GPIO口有對應的一個PIN_CNF寄存器。通過該寄存器可以配置以下參數(shù):
?
方向
驅(qū)動能力
上拉、下拉
引腳電平檢測
是否使能輸入緩沖
模擬輸入(特定的引腳)
?
nRF51系列芯片最多擁有32個GPIO口,像我們常用的型號QFXX芯片,一般是31個GPIO口,而WLCSP封裝的CEXX,有32個GPIO口。nRF51只有一個PORT口,GPIO 0-GPIO 32(31)用P0.0---P0.32(31)表示。
???????
關于以上功能的詳細說明請參考PIN_CNF[n]寄存器的介紹。本節(jié)將與大家一起基于nRF51的SDK里面有庫函數(shù),實現(xiàn)GPIO的基本操作,并點亮LED。
?
示例詳解
基于硬件平臺: nrf51822ek_tm開發(fā)板,因沒有足夠時間去設計開發(fā)析以及,本人在淘寶上淘買了現(xiàn)成可用的開發(fā)板。
?
?
本示例所用的最小系統(tǒng)板原理圖:
?
工程名為nrfxx-gpio確認后按下圖選擇芯片為nrf51822_xxAA->ok
在彈出的對話框中勾選CMSIS中的CORE;Device中的Startup(后面有nrf51 Series字樣的);在nrf_device中勾選nrf_delay和nrf_gpio.
?
OK之后工程自動生成如下代碼:
新建一個空白文檔,保存為main.c,并加入工程中:
?
?
配置工程,選擇使用MicroLIB庫,可以減小程序體積:
加入NRF51定義,并選擇化等級3,可以減小程序體積,但仿真運行時可能會出現(xiàn)與代碼順序不一致現(xiàn)象:
?
調(diào)試工具選擇J-LINK,并將接口設置為SW口勾選下載程序后自動復位及運行:
?
下載載運行,可以看到藍色LED在閃爍(亮500ms 滅500ms )對應的波形如下所示:
通過上面的例子,有沒有發(fā)現(xiàn)用keil-mdk工具對nrf51xx進行開發(fā)是不是也非常簡單呢。KEIL的Pack包中可以下載現(xiàn)成的官方工具,開發(fā)起來相當簡單,當然也可以直接在官方的SDK例程中時行修改:
OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內(nèi)容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!
文中源碼資料下載,在公眾號里給十三發(fā)消息:
下載|一起學nRF51xx 1
?
?
關注十三公眾號
?
?
總結
以上是生活随笔為你收集整理的一起学nRF51xx 1 - GPIO的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一起学nRF51xx 0 - 环境搭建
- 下一篇: 一起学nRF51xx 2 - cloc