uint32 ADC_Data; PINSEL0= 1 << 20; // P0.10连接到AD1.2 /* 进行ADC模块设置 */ AD1CR = (1 << 2) | // 选择通道2 ((Fpclk / 1000000 - 1) << 8) | // CLKDIV=Fpclk/1000000-1,转换时钟为1MHz (0 << 16) | // BURST=0,软件控制转换操作 (0 << 17) | // CLKS=0, 使用11clock转换 (1 << 21) | // PDN=1,正常工作模式 (0 << 22) | // TEST1:0=00,正常工作模式 (1 << 24) | // START=1,直接启动ADC转换 (0 << 27); // 直接启动ADC转换时,此位无效 ADC_Data = AD1DR; // 读取ADC结果,并清除DONE标志位 AD1CR |= 1 << 24; // 进行第一次转换 while ((AD1DR & 0x80000000) == 0); // 等待转换结束 AD1CR |= 1 << 24; // 再次启动转换 while ((AD1DR & 0x80000000) == 0); // 等待转换结束 ADC_Data = AD1DR; // 读取ADC结果
这是我用AD转换器1来测模拟量,完全是用2131板子上的实验程序改的,原来是用AD转换器0,现在我换成AD转换器1就不能得到结果拉,请大家看看这是怎么回事啊 |