完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/*I2C写*/
/* 第一步,将频率扫描参数编程写入相应寄存器*/ I2C_write(0x0D,0x82,0x10);//起始频率为5KHZ A3D70A I2C_write(0x0D,0x83,0x62); I2C_write(0x0D,0x84,0x4D); I2C_write(0x0D,0x85,0x00); I2C_write(0x0D,0x86,0x53);//频率增加10HZ 53E2 I2C_write(0x0D,0x87,0xE2); I2C_write(0x0D,0x88,0x00);//150个点 I2C_write(0x0D,0x89,0x96); I2C_write(0x0D,0x8A,0x01);//511*2=1022个周期。延迟时间为 511*2*1/激励信号频率(30KHZ)建立时间 I2C_write(0x0D,0x8B,0xFF); // SysCtlDelay(SysCtlClockGet()/(2000*3)); /* 第二步,待机模式 */ I2C_write(0x0D,0x80,0xB0); I2C_write(0x0D,0x81,0x08);//用过外部晶振1M I2C_write(0x0D,0x80,0x01); /* 第三步,向控制寄存器发出以起始频率初始化命令 */ I2C_write(0x0D,0x80,0x10); I2C_write(0x0D,0x81,0x08); /* 第四步,建立足够的时间周期 */ // I2C_write(0x0D,0x8A,0x03);//511*2=1022个周期。延迟时间为 511*2*1/激励信号频率(30KHZ) // I2C_write(0x0D,0x8B,0xFF); // SysCtlDelay(SysCtlClockGet()/(2000*3)); /* 第五步,向控制寄存器发出启动频率扫描命令 */ I2C_write(0x0D,0x80,0x20); /*I2C读*/ /* 第一步,轮询状态寄存器,检查DFT转换是否完成 */ I2C_read(0x0D,0x8F); while (!0x02==(datarecieve&0x02)) { }//判读D1这一位是否为1,如果为1,则DFT转换完成可以继续进行,如果没有,则等待 /* 第二步,读取实部虚部值 */ // UARTprintf(" Re: '%c' . . . "); I2C_read(0x0D,0x94); 以上是我的程序,麻烦大家帮我看看哪里错了。读0x8F的值是70,VOUT口没有正弦波。设置MCLK的外部晶振为1Mhz,起始频率是500Hz。 |
|
相关推荐
2个回答
|
|
这个的代码应该不难,建议在确定硬件电路没问题的情况下,再检查代码问题。
|
|
|
|
硬件没有问题啊,连接很简单,应该就是软件出错了 但是不知道错误在哪
|
|
|
|
只有小组成员才能发言,加入小组>>
996 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1389 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1940 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4272 浏览 2 评论
9063 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1535浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1695浏览 2评论
996浏览 2评论
1674浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1389浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 01:24 , Processed in 0.619884 second(s), Total 50, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号