我正在尝试了解在Teensy 3.1上初始化ARM Cortex M4 MK20DX256VLH7上的ADC。我很好奇关于下面符号含义的术语和相关搜索术语。 &= ~(3<<18)
,我在按位NOT(3位左移18)上解释为按位AND,对我来说意义不大。我解释括号内的内容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 */
}