![](/img/trans.png)
[英]TM4C123G launchpad: How to modify one pin (e.g. PE1) without knowing its GPIO and its position in the byte
[英]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.