完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ADUC7061如果我设置DAC值,P0口设置成GPIO和模拟输入,本来是两个互相没关联的功能模块,居然会出错。
GP0KEY1 = 0x7; GP0CON1 = 0x1; GP0KEY2 = 0x13; ADUC7061将PO口设置成模拟输出,就是GP0CON1 = 0x1;,设置成GPIO,就是GP0CON1 = 0x0. 问题是这样的,如果我设置DAC为0.6V, SetDacInmv(600); while(1) { T2CLRI = 0x55; GP0KEY1 = 0x7; GP0CON1 = 0x1; GP0KEY2 = 0x13; DelayMs(5); GP0KEY1 = 0x7; GP0CON1 = 0x0; GP0KEY2 = 0x13; DelayMs(5); } 将P0口交替设置为GPIO和模拟端口。 就会发现: 1. 如果采用DEBUG进入,然后单步或者RUN模式执行。用示波器看DAC输出,结果是一条直线,即直流电压,0.6V。 2.如果下载FLASH,不要连JLINK,或者ULINK,然后上电发现示波器输出是个方波,0.9V和0.6V之间切换。 延时够长,不存在建立时间的问题。更何况,是方波,不是缓慢上升或下降。 问题是:如果说24位ADC不正常,是JLINK或者ULINK的问题,那么脱离了JLINK或ULIKN, DAC就不正常工作。 问题是:究竟是调试器有问题呢?还是ADIC芯片有问题呢?看DAC输出,似乎是调试器的复位或者初始化行为,修复了ADCI芯片的BUG. 当然,如果没有调试器,这个芯片,总是无法正确输出DAC的,在P0设置为模拟输入的时候。 当然,我现在只是好奇,问一下。我通过这段时间调试,发现ADI芯片是不可靠的,低级错误太多,而且售后环节不顺畅,打算换GD32F150+外置ADC方案。 |
|
相关推荐
1个回答
|
|
根据给出的信息,ADUC7061芯片设置P0口为GPIO和模拟输入时会报错。这可能是因为在设置GPIO和模拟输入之前,需要先解除特殊功能寄存器(GP0KEY1和GP0KEY2)的保护。正确的操作顺序应该是先设置GP0KEY1和GP0KEY2,然后再设置GP0CON1。例如:
GP0KEY1 = 0x7; GP0KEY2 = 0x13; GP0CON1 = 0x1; 这样就可以成功设置P0口为模拟输入。 同样的道理,要设置P0口为GPIO,也需要解除保护,并按正确的顺序进行设置。例如: GP0KEY1 = 0x7; GP0KEY2 = 0x13; GP0CON1 = 0x0; 这样就可以成功设置P0口为GPIO。 建议仔细检查设置DAC值和P0口功能的顺序是否正确,并确保在设置P0口功能前解除保护。此外,也要确保其他相关寄存器和配置正确,以避免出错。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12024 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 03:16 , Processed in 0.776118 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号