簡體   English   中英

如何在ARM Cortex M4 TM4C123G微控制器中使用GPIO端口控制(GPIOPCTL)?

[英]How to use GPIO Port Control (GPIOPCTL) in ARM Cortex M4 TM4C123G microcontroller?

我正在嘗試將超聲波傳感器與ARM Cortex M4 MCU連接。 由於我使用的是邊沿觸發計時器,用於計算傳感器回波的上升沿和下降沿之間的時間,因此我應該為回波輸入引腳分配什么替代功能? 我在http://cortex-m.com/tm4c-lessons/上找到了以下配置:

void Timer0_init(void)
{
SYSCTL->RCGCTIMER |=(1U<<0); 
SYSCTL->RCGCGPIO |=(1U<<1); 
GPIOB->DIR &=~ECHO;
GPIOB->DEN |=ECHO;
GPIOB->AFSEL |=ECHO;
GPIOB->PCTL &=~0x0F000000;
GPIOB->PCTL |= 0x07000000;
TIMER0->CTL &=~1;
TIMER0->CFG =4;
TIMER0->TAMR = 0x17;
TIMER0->CTL |=0x0C;
TIMER0->CTL |=1;
}

我使用數據表來了解每一行,但對於我不了解的行:

GPIOB->PCTL &=~0x0F000000;
GPIOB->PCTL |= 0x07000000;

我猜第一行只是一個復位,第二行選擇了外圍功能,但我無法理解或發現他將PCTL寄存器中用於輸入的引腳設置為7是什么?

如第688f頁的數據表中所述,該寄存器的已使用位27:24用於設置要在引腳6上使用的備用功能。根據GPIOB->PCTL ,已配置的引腳為PB6。

現在,您可以在1351頁的表23-5中看到設置了哪些備用功能。 在這種情況下,根據引腳方向和外設配置, T0CCP0是pwm,捕捉功能或比較功能。

GPIOB->PCTL &=~0x0F000000; 用於重置引腳6的功能,而無需觸摸其他引腳。

GPIOB->PCTL |= 0x07000000; 設置引腳6的功能,而不更改其他功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM