一、mcp23s18的引腳
gpioa和gpiob共16個為雙向io,輸出為開漏輸出,gpio模組包含資料埠gpion、內部上拉電阻、輸出鎖存器olatn
cs片選、sck時鐘、si序列資料輸入、so序列資料輸出
vdd接電源、vss接地、reset復位
inta、intb對應埠中斷輸出
二、暫存器
一共22個暫存器,分為a組和b組。
1、方向暫存器iodir
配置為1,該位引腳為輸入引腳。為0,為輸出引腳。
2、輸入極性暫存器ipol
某位置1,對應gpio反映引腳電平反轉後的值
3、電平變化中斷控制暫存器gpinten
置1,允許對應引腳電平變化中斷
4、中斷控制暫存器intcon
為1,引腳值與預設值defval比較。為0,引腳與先前值比較
5、電平變化中斷的預設值比較暫存器defval
用於判斷中斷時的比較預設值
6、配置暫存器iocon
bank位控制如何對暫存器定址
當bank=1,porta暫存器對映到00h~0ah,portb暫存器對映到10h~1ah
當bank=0,a/b暫存器組合配對
mirror位控制inta和intb如何相互作用
為1,任何乙個埠上的中斷都會使inta和intb啟用
為0,b埠中斷使intb啟用,a埠中斷inta啟用
seqop連續操作模式位
為1,禁止連續操作,位址指標不遞增
為0,使能連續操作,位址指標遞增
odr開漏控制位,用於使能或禁止int引腳的開漏輸出
為1,使能開漏輸出
為0,驅動器輸出有效
intpol中斷極性,用於設定int引腳的極性,僅在odr清零時起作用,將int配置為有源推挽輸出。
為1,高電平有效,為0,低電平有效
intcc中斷清零控制,配置如何清除中斷
為1,讀intcap暫存器時清除中斷
為0,讀gpio暫存器清除中斷
7、gppu上拉電阻配置暫存器
為1,相應埠引腳被乙個內部電阻上拉
8、intf中斷標誌暫存器
為1,相應引腳發生了中斷
9、intcap中斷捕捉暫存器
中斷時捕捉gpio埠值。該暫存器維持不變知道中斷清除。
10、gpio埠暫存器
寫入該暫存器將修改輸出鎖存暫存器olat
11、olat輸出鎖存暫存器
讀取該暫存器將讀取olat而不是埠本身,寫入該暫存器將修改輸出鎖存器,後者將修改輸出引腳的配置。
三、中斷邏輯
1、電平變化中斷的發生:gpinten允許中斷,引腳發生變化或與預設值不同(設定intcon和defval)
2、iocon.mirro決定inta和intb互為映象
3.中斷輸出
通過iocon配置為低電平、高電平、開漏輸出
4.中斷埠值
intcap
5.中斷清除
讀gpio或intcap。只要中斷未清除,後續中斷條件不會再引起中斷。
四、工作模式
1、位元組模式,禁止指標自動遞增,可通過額外時鐘連續訪問同一位址
2、一種特殊模式(iocon.bank=0的位元組模式)使位址指標在關聯的a/b暫存器對之間切換。
3、連續模式,位址指標自動遞增,訪問完最後乙個暫存器後,位址指標返回到00h。
五、spi
1.spi讀寫
位元組模式,對於讀寫操作都是從拉低cs開始,隨後傳送讀寫命令到器件,操作碼後跟位址和至少乙個資料位元組
連續操作,以上拉cs結束
2.spi定址
控制位元組格式
spi定址暫存器
18年秋季學習總結
目錄 c語言程式設計 基礎的語句學習,標頭檔案 includeint main 主函式 函式變數int double,char,item,sum 位元組長度 輸入輸出語句 printf輸出,scanf輸入,if條件判斷,處理整型和浮點型資料,也可以處理字元型資料 優先順序,雙目運算子 lf 保留小數...
8月23日學習總結
1.訪問修飾符 意義 將某些成員宣告成private,對於使用者來說可以說是一種服務,因為這樣使用者可以知道哪些是他關注的哪些是不重要的,不需要關注,如此歷來對於使用來說降低了對使用物件認識的難度。讓程式設計者可以更動class內部運作方式,而無須擔心波及到客戶端程式。2.基本資料型別和引資料型別在...
5月18日學習總結
上節課老師教授了兩種方式解決刪除vector中資料排序混亂問題,下面是通過虛刪的方式重新寫的 這種方式適合資料類中有很多中資料的情況,用multimap時存vector中的下標,但是像這種通訊錄只有姓名和 號碼的類,直接用的multimap就行了。includeusing namespace std...