AT91RMM9200的PIO使用與設定

2021-06-04 14:14:31 字數 924 閱讀 5754

1。配置pio工作在gpio模式

以pb0為例,如果要使其工作在gpio模式,則首先要使能pio控制器,設定:

*(at91c_piob_per)=0x1;

然後或者把pb0作為輸出,或者作為輸入。如果作為輸出口,設定:

*(at91c_piob_oer)=0x1;

向使能為輸出口的pb0寫入乙個數,設定:

*(at91c_piob_sodr)=0x1;//寫入1

*(at91c_piob_codr)=0x1;//寫入 0

如果要把pb0作為輸入口,則配置:

*(at91c_pmc_pcer)|=0x1 << at91c_id_piob;//enable piob mck

*(at91c_piob_odr)=0x1; //enable pb0 input

很多使用者忽略了上面的設定,結果讀不到口的狀態,如果使能了外設時鐘,則讀埠

狀態設定:

int status;

status=*(at91c_piob_pdsr)&0x01;

status反映了當前pb0口的電平,即status=0或1;

以上的過程就是如何配置乙個i/o口作為通用i/o來使用。

2。配置pio工作在外設i/o模式

仍以pb0為例,如果要使pb0工作在外設a模式或者b模式下,首先要禁止pio控制器,設定:

*(at91c_piob_pdr)=0x1;

如果要設定pb0為a功能,即tf0,則設定:

*(at91c_piob_asr)=0x1;

如果要設定pb0為b功能,即rts3,則設定:

*(at91c_piob_bsr)=0x1;

這時,pb0就不再受pio控制器的管理而工作在外設引腳模式下了。

必須指出:at91rm9200的所有外設引腳在使用之前必須進行步驟2的設定,否則該引腳無法使用。

AT91RM9200新增串列埠驅動

uart串列埠驅動程式移植 uart串列埠驅動程式移植 仇潔婷,陳儒軍 在嵌入式控制系統採集站的設計方案中,需要用到 at91rm9200的5 個uart 串列埠,就會涉及到多個中斷的優先順序分配問題,而且也可能造成序列通訊的中斷不能及時響應,從而造成資料丟失。在 linux2.6.21 核心中,u...

AT91RM9200 啟動過程詳解

最近,一直在做ramdisk,把arm linux的啟動過程完整的看了一遍,收穫不少,心想可以寫點原創了。考慮到網上的文件雖然有介紹arm linux的啟動過程的,但是一般沒有給出流程圖,也講的十分零星,沒有乙個全貌,我就主要以流程圖的方式給出,再一點一點的詳解每個過程,剛剛接觸嵌入式arm lin...

AT91RM9200的啟動過程

系統上電,檢測bms,選擇系統的啟動方式,如果bms為高電平,則系統從片內rom啟動。at91rm9200的rom上電後被對映到了0x0和0x100000處,在這兩個位址處都可以訪問到rom。由於9200的rom中固化了乙個bootloaer程式。所以pc從0x0處開始執行這個bootloaer 準...