我试图了解在 Teensy 3.1 上初始化 ARM Cortex M4 MK20DX256VLH7 上的 ADC。我对以下符号的含义和相关搜索词感到好奇。&= ~(3<<18)
,我将其解释为按位非(3 位左移 18)上的按位与,对我来说意义不大。我将括号内的内容解释为BIN 11
转换为BIN 11000000000000000000
. 我知道 PINMODE1 发生了指针取消引用(这对我来说有点模糊)并且它正在将芯片上的引脚 25 初始化为 ADC 输入?我对自己的解析能力完全没有信心。请指教。感谢您的时间。
void ADC_Init (void) {
LPC_PINCON->PINMODE1 &= ~(3<<18); /* P0.25 */
LPC_PINCON->PINMODE1 |= (1<<18); /* has neither pull-up nor pull-down */
LPC_PINCON->PINSEL1 &= ~(3<<18); /* P0.25 is GPIO */
LPC_PINCON->PINSEL1 |= (1<<18); /* P0.25 is AD0.2 */
LPC_SC->PCONP |= (1<<12); /* Enable power to ADC block */
LPC_ADC->ADCR = (1<< 2) | /* select AD0.2 pin */
(4<< 8) | /* ADC clock is 25MHz/5 */
(1<<16) | /* Burst mode */
(1<<21); /* enable ADC */
// LPC_ADC->ADINTEN = (1<< 8); /* global enable interrupt */
// NVIC_EnableIRQ(ADC_IRQn); /* enable ADC Interrupt */
}