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