(2)MSP430F5529 通用I O口的設定

2022-09-03 02:21:09 字數 3205 閱讀 7967

初學,有什麼錯誤或者不恰當的地方多多指正,大家一起交流學習。

推薦乙個好去處:ti官方msp430交流社群需要註冊。在這裡面提問題,都會有ti的在職工程師為你解答。

第一章,先學習i/o。i/o的操作是最基本的,而且這些暫存器也都要牢牢掌握。msp430難就難在它有大量的暫存器需要設定,雖然不是每個都必須掌握,但i/o控制暫存器我覺得肯定還要記住的。這個太基礎了啊啊-_'

大家手裡要常備乙份原理圖(pcb圖),方便查綫和配置引腳

一、通用i/o的簡單操作(設定)

1.1  i/o的簡介

特點:①多種復用和設定(即可控制是否輸入、是否輸出、是否接上拉電阻、是否接下拉電阻、是否可接受中斷);

一般情況下,p1和p2都是具有中斷能力的。從p1和p2介面的各個i/o管腳引入的中斷可以獨立的被使能並且設定為上公升沿或者下降沿觸發。對應的中斷向量表分別為p1iv和p2iv,它們只能進行字操作,並且paiv這個暫存器根本不存在。

③p1、p2可合為pa,p3、p4可合為pb,…pc、pd

。所以p1為8位bcd 0x00,pa為16位bcd 0x0000

。當進行字操作寫入pa口時,所有的16位都被寫入這個埠;當利用位元組操作寫入pa口的低位元組時,高位元組保持不變;

④由於430很多i/o和外圍電路接線,所以這裡常用位操作。如事先定義(接下來也會用到,先在此宣告)bit0=0x01、bit1=0x02、bit3=0x04…bit7=0x80,那麼將p1.1、p1.3的輸出設為1的時候,就可以這樣操作:p1out|=(bit1+bit3)。這樣顯得很清楚。

⑤沒有用到的i/o,要統一拉低為好。此外,當讀入的資料長短小於埠最大長度時,那些沒有用到的位會被視零。

1.2   i/o的簡單配置

430i/o的配置是用軟體來實現的,是通過相應的配置暫存器來實現的。(用到某個i/o時,一定要先配置好該i/o,否則易出錯)

1.2.1i/o方向設定暫存器pxdir

如設定p1.1和p1.2為輸出狀態,操作為:p1dir |=(bit1+bit2)等價於padir 

|=(bit1+bit2)也等價於padir_l|=(bit1+bit2。

拉高設定為輸出,拉低設定為輸入(預設)。

1.2.2i/o輸入設定暫存器pxin

設定p1.1和p1.2的輸入為低電平,操作為:p1in &=~(bit1+bit2)。

1.2.3i/o輸出設定暫存器pxout

①當只用為簡單的輸出時:如設定p1.1和p1.2輸出高電平,操作為:p1out |=(bit1+bit2)。

②如果該引腳為正常i/o功能,且當前已設定為輸入方向,且上拉/下拉電阻暫存器是有效地。那麼pxout可以用來配置上拉和下拉電阻

低電平為下拉電阻;

高電平為上拉電阻;

1.2.4上拉/下拉電阻使能暫存器pxren

低電平該暫存器為無效狀態;

高電平該暫存器為有效狀態;

1.2.5輸出驅動能力設定暫存器

pxds

弱化驅動可以減弱電磁干擾emi,全力驅動會增強電磁干擾。預設為減弱驅動。

低電平表示減弱的驅動(預設);

高電平表示全力的驅動;

1.2.6功能選擇暫存器pxsel

用來宣告該埠是要應用於外圍電路的特殊功能(不決定輸入輸出方向),預設為低電平

低電平表示普通的i/o(預設);

高電平表示該引腳將有連線外圍電路的特殊用途;

如:開發板初始化函式hal_board.c中有這樣一句程式:

p5sel |=(bit2+bit3)(=00001100)

這句話的意思就是宣告p5.2和p5.3將有特殊用途,實際上這兩個i/o接的是外部的高頻時鐘晶振(之後還要設定為輸入狀態才可以)。

此外需要注意的是,一旦某個i/o的pxsel置高了,那麼該引腳將不能再被用為中斷引腳。

總結,簡單的程式應用:

/*實現led的閃爍*/led位於每個觸控按鍵下方,具體介面請查詢原理圖

#include該標頭檔案內部包含430各個暫存器的配置情況

void main(void)

}

i++;

for(j=20000;j>0;j--);                               //延時

}

}

文章摘錄於:

MSP430F5529學習筆記1

第一次學習微控制器相關知識,能力還不夠強,進度緩慢 通過在網上查詢,找到了乙份執行可成功完成led燈相應閃爍功能的 如下 include int main void 觀察到板子上有兩個led燈,該 控制閃爍的是p1.0的led1.0紅光閃爍 由於不清楚具體 含義,想要通過修改以下兩行 完成閃爍燈的轉...

MSP430F5529 上手小例程4

將aclk和smclk配置為refclk vloclk datasheet的開啟方式 查閱資料得知 3個時鐘源 refo 32.768khz vlo 10khz xt2 4mhz lfxt1 32.768khz dco 通過fll設定,經1 2 4 8 16 32分頻可得到dcoclkdiv xt1...

(7)MSP430F5529 電源管理模組

我覺得電源管理與監控是乙個很複雜很難掌控的部分,不僅涉及到到源模式的選擇,還牽扯到複雜的中斷 以及中斷如何處理等等。雖然學好這一部分對實現降低功耗的目的很有幫助,但對於目前的我們來說貌似 功耗 一詞還稍微遠了點。此外,這部分控制對防止和處理供電意外 過高過低等 的發生很有幫助,不過貌似這個開發板如果...