完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人刚学习ARM,这个小代码也是从网上找的,我仔细看了寄存器的设置,配置都正确,我用万用表也量了P0.1脚的电压,确实是1.65V的样子,可是为什么转化的结果一直是3FF呢?我换了别的引脚也是这样,不知道是怎么回事,请各位朋友帮忙看看,不胜感激,主程序代码如下:int main() { U32 ADC_Data; PINSEL1 |= 1 << 24; // P0.28连接到AD0.1 /* 进行ADC模块设置 */ AD0CR = (1 << 1) | // SEL=8,选择通道1 ((12000000 / 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转换时,此位无效 DelayNS(10); ADC_Data = AD0DR1; // 读取ADC结果,并清除DONE标志位 for(;;) { AD0CR |= 1 << 24; // 进行第一次转换 while ((AD0DR1 & 0x80000000) == 0); // 等待转换结束 AD0CR |= 1 << 24; // 再次启动转换 while ((AD0DR1 & 0x80000000) == 0); // 等待转换结束 ADC_Data = AD0DR1; // 读取ADC结果 ADC_Data = (ADC_Data >> 6) & 0x3ff; ADC_Data = ADC_Data * 3300; // 参考电压3.3v ADC_Data = ADC_Data / 1024; } } 截图为在线仿真时的画面,可以看到AD0的寄存器在走到断点处时的状态,可以看到转化结果是错误的,不应该为3FF |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
1913个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36372 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4405 浏览 0 评论
6065 浏览 1 评论
6777 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4222 浏览 0 评论
627浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
622浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
617浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
700浏览 2评论
804浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 14:38 , Processed in 1.127476 second(s), Total 56, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号