完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在用M058S开启两路AIN0和AIN1 AD转换,只有第一路能得到转换正确的数据,第二路一直都是0,万用表测量第二路脚有1.2V的电压,但就是得不到AD值,请教各位大神如下函数有哪里需要修改的呢?
/*-----------------------------------------------------------------*/ /* 初始化IO引脚 */ /*-----------------------------------------------------------------*/ void IO_Init(void) { /* 设定引脚复用功能 */ SYS->P1_MFP = SYS_MFP_P10_AIN0 | SYS_MFP_P11_AIN1; SYS->P2_MFP = SYS_MFP_P20_PWM0 | SYS_MFP_P21_PWM1 | SYS_MFP_P22_PWM2 | SYS_MFP_P23_PWM3; SYS->P3_MFP = SYS_MFP_P30_RXD0 | SYS_MFP_P31_TXD0; // | SYS_MFP_P32_INT0; /* 配置引脚输入输出模式 */ P0->PMD = 0x000045F5; P1->PMD = 0x0000F7FA; P1->OFFD = 0x00000003; P2->PMD = 0x0000FF55; P3->PMD = 0x0000DFCF; P4->PMD = 0x0000FFF5; } /*-----------------------------------------------------------------*/ /* 初始化ADC */ /*-----------------------------------------------------------------*/ void ADC_Init() { /* 设定ADC控制寄存器 */ ADC->ADCR = ADC_ADCR_DMOF_UNSIGNED_OUTPUT | ADC_ADCR_DIFFEN_SINGLE_END | ADC_ADCR_TRGCOND_LOW_LEVEL | ADC_ADCR_ADMD_SINGLE | ADC_ADCR_ADEN_CONVERTER_ENABLE; /* 使能模拟输入通道 */ ADC->ADCHER = 0x03; } // AD转换------------------------------------------ void Bat_volt_check(void) { uint32_t adcbuf1, adcbuf2; uint32_t temp; _ADC_SET_CHANNEL(0X03); //P1.0 P1.1 /* clear the A/D interrupt flag for safe */ ADC->ADSR = ADC_ADSR_ADF_Msk; _ADC_START_CONVERT(); _ADC_WAIT_COVERSION_DONE(); ADC->ADSR = ADC_ADSR_ADF_Msk; /* clear the A/D conversion flag */ adcbuf1 = _ADC_GET_CONVERSION_DATA(0); adcbuf2 = _ADC_GET_CONVERSION_DATA(1); printf("ad0 = %dn", adcbuf1); printf("ad1 = %dn", adcbuf2); } adcbuf2 一直都是0,不管接了多少伏电压都是一样,为什么呢? 这样写的函数有问题吗? |
|
相关推荐
1个回答
|
|
ADC是不是设置成单次模式了,单次模式只转换使能的编号低的那个通道,还有不要设置成差分输入模式
|
|
|
|
只有小组成员才能发言,加入小组>>
614浏览 3评论
484浏览 2评论
351浏览 1评论
367浏览 1评论
336浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 00:33 , Processed in 0.863164 second(s), Total 98, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号