GPIO學習涉及到最簡單的程序-點燈。參考文章:《TMS320F28335項目開發記錄8_28335之GPIO引腳》
1、GPxMUX寄存器(功能選擇寄存器)
每個I/O口都有一個功能選擇寄存器,功能選擇寄存器主要用於選擇I/O工作在特殊功能還是通用數組I/O模式。在復位時,所有GPIO配置成通用數字模式。
1)如果GPxMUX.bit = 0,配置成通用數字I/O功能;
2)如果GPxMUX.bit = 1,配置成特殊外設功能口(如SCI、CAN);
I/O的輸入功能和外設的輸入通道總是被使能的,輸出通道是通用數組I/O和特殊外設複用的。如果引腳配置成通用數組I/O功能,相應的外設功能將被禁止。
2、GPxDIR(方向控制寄存器)
每個I/O口都有數據方向控制寄存器,數據方向控制寄存器用於設置通用數字I/O爲輸入還是輸出口,在復位時,引腳的默認狀態爲輸入狀態。
1)如果GPxDIR.bit = 0,引腳設置爲通用數字量輸入;
2)如果GPxDIR.bit = 1,引腳設置爲通用數字量輸出;
復位時,GPxMUX和GPxDIR默認值都爲0,所以在復位時,引腳的默認狀態爲數字I/O輸入。
3、GPxDAT寄存器(數據寄存器)
每個I/O口都有一個數據寄存器,數據寄存器是可讀可寫寄存器。
1)I/O設置爲輸出功能時,如果GPxDAT.bit = 0,那麼操作將會使相應的引腳拉低;
2)I/O口設置爲輸入功能時,如果GPxDAT.bit = 0,反映相應的引腳狀態爲低電平;
3)I/O口設置爲輸出功能時,如果GPxDAT.bit = 1,那麼操作將會使相應的引腳拉高;
4)I/O口設置爲輸入功能時,如果GPxDAT.bit = 1,反映相應的引腳狀態爲高電平。
需要說明的是,當用戶試圖改變一個數字I/O的狀態時,不要改變另一個I/O的引腳狀態。
4、GOxSET寄存器(置位寄存器)
每個I/O口都有一個置位寄存器,置位寄存器是隻寫寄存器,任何讀操作都返回0,如果相應的引腳配置成數據量輸出,寫1後相應的引腳會置高,寫0時沒有反映。
1)如果GPxSET.bit = 0,沒有影響;
2)引腳設置爲輸出時,如果GPxSET.bit = 1,那麼操作將會使引腳置高。
5、GPxCLEAR寄存器(清除寄存器)
每個I/O口都有一個清除寄存器,清除寄存器是隻寫寄存器,任何讀操作都返回0。
1)如果GPxCLEAR.bit = 0,沒有影響;
2)引腳設置爲輸出時,如果GPxCLEAR.bit = 1,將相應的引腳置成低電平。
6、GPxTOGGLE寄存器(取反觸發寄存器)
每個I/O口都有一個取反觸發寄存器,該寄存器是隻寫寄存器,任何讀操作都返回0。
1)如果GPxTOGGLE.bit = 0,沒有影響;
2)引腳設置爲輸出時,如果GPxTOGGLE.bit = 1,那麼操作將使相應的引腳取反。
操作管腳的思路:1、選擇寄存器MUX,最主要是選擇功能。DSP管腳都是複用的
2、方向寄存器:是輸入還是輸出
3、數據:是0還是1
4、置位、清零、取反都有專用的寄存器
程序太簡單,不做累述
參考文章中值得學習
- #define LED1 GpioDataRegs.GPBDAT.bit.GPIO60
- #define LED2 GpioDataRegs.GPBDAT.bit.GPIO61