乙個io口就是相當於從cpu晶元裡引出的一根導線, 用於連線輸入輸出裝置,由**來控制/獲取它的電平。
也就是說我們可以通過**控制乙個io口是高電平還是低電平(io作輸出功能)。
還是通過**來判斷io口是處於高/低電平狀態(io作輸入功能).
cc2530裡共分成三組io口: p0, p1, p2
p0組和p1組裡都有8個io口, p2組裡有5個io
p1_7表示p1組裡第7個io.(io口從零開始計數)
// io口的應用:
如圖上d1 led燈已接上電源,另一端接在io口p1_0, 當電流流過led燈時就會發光, 要想有電流流過led, 就需要電路形成迴路才可以, 也就是需要把p1_0io口設為低電平。 要想led不亮,則把io設為高電平.
再如圖上的s1按鍵,當s1按下時, p0_1就相於接在地線上,也就是低電平。當s1斷開時,p0_1就是電平.
/ 要控制io口的電平, 需要設定硬體輸出的電平。 cpu上需要提供**來設定的介面才可以, 這種介面就是
cpu裡提供的配置暫存器.
乙個配置暫存器占用乙個記憶體位址, 我們只要改變位址上的值, 就可以設定硬體的相應功能了.
cc2530 io相關的暫存器:
如上圖: io口的配置暫存器p0的位址是0x80, 我們只要改變0x80位址上的值就可以控制p0組io口的電平了。
但在iocc2530.h裡已定義:sfrbit( p0 , 0x80, p0_7, p0_6, p0_5, p0_4, p0_3, p0_2, p0_1, p0_0 )
所以**裡可以直接寫」p0 = 0xff」, 即可以直接給p0暫存器設0xff的值了, 也就是p0組所有的io口輸出高電平.
「p0_7 = 1」, 給p0組的第7個io口設高電平.
// io口最常用到的暫存器說明:
暫存器p0,p1, p2 : 用於設定io口輸出的電平和獲取io口的電平使用. 在暫存器值裡的第幾位就是表示第幾個io口的電平狀態. 「p0 = 1<<4」表示p0組裡第4個io口設定高電平
暫存器pxsel: 因io口是多功能的,這種暫存器用於指定io口作什麼具體功能.如普通io口,還是給控制器自動控制. 在暫存器值裡的第幾位就是組內第幾個io口的設定, 0表示作普通io口用,1表示給控制器自動控制.
暫存器pxdir : 當io口選擇的功能是作普通io口用時,此暫存器用於指定是作輸入還是輸出使用. 0表示輸入, 1表示輸出
CC2530的系列課程
本課程主要是cc2530的系列課程,並附上原始碼。課程內容大體安排如下 第一章 zigbee簡介 第二章 zigbee軟體開發平台的搭建 zigbee cc2530 系列教程 3 點亮1個led實驗 zigbee cc2530 系列教程 4 按鍵控制led實驗 zigbee cc2530 系列教程 ...
TI CC1310 sub1G的SDK開發之入門
前言 cc1310是ti新出的一款sub1g射頻模組,具體引數見資料手冊吧,這款晶元的sdk跑的是rtos系統,是基於free rtos定製的ti rtos,多工執行。晶元整合了兩個核,乙個m3做控制muc,乙個m0負責射頻。準備工作 sdk韌體 基於launchpad 建議 或者基於dk板tirt...
CC2530晶元的IEEE Mac位址
2.4g的cc253x晶元由ti公司生產,可以很容易建立在基於ieee802.15.4標準協議上面,現今多數zigbee感測節點都是用cc253x的晶元。cc253x的ieee位址共分為三種 primary ieee,secondary ieee和random ieee。其中primary ieee...