完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用STM32F207控制,AD5315供电和参考电压都是3.3V,结果无电压输出,以下是相关代码: void main(void) { int i,j; SystemInit(); delay_init(120); GPIO_Init(); SPI_Init(); GPIOA->ODR |= SCLK_5315; GPIOA->ODR |= SDA_5315; GPIOA->ODR &= ~A0_5315; Write_5315(DACA,0x3FF); while(1); } void Write_5315(u8 number,u16 data) { int i; u8 AddressByte=0x18; u8 PointerByte; u16 DataByte; switch(number) { case DACA: PointerByte=0x01; break; case DACB: PointerByte=0x02; break; case DACC: PointerByte=0x04; break; case DACD: PointerByte=0x08; break; default :break; } DataByte=0x3000|(data<<2); //address byte for(i=7;i>=0;i--) WriteOneBit((AddressByte>>i)&0x01); WriteOneBit(0);//wait //pointer byte for(i=7;i>=0;i--) WriteOneBit((PointerByte>>i)&0x01); WriteOneBit(0);//waite //DataByte for(i=15;i>=0;i--) WriteOneBit((DataByte>>i)&0x01); WriteOneBit(0);//wait WriteOneBit(0);//wait GPIOA->ODR |= SDA_5315; } void WriteOneBit(u8 bit) { if(bit) { GPIOA->ODR &=~ SCLK_5315; delay_us(1); GPIOA->ODR |= SDA_5315; delay_us(1); GPIOA->ODR |= SCLK_5315; delay_us(1); } else { GPIOA->ODR &=~ SCLK_5315; delay_us(1); GPIOA->ODR &=~ SDA_5315; delay_us(1); GPIOA->ODR |= SCLK_5315; delay_us(1); } } |
|
相关推荐
2个回答
|
|
您好,您的问题已经提交给ADI相关专家,将邀请专家尽快回答您的问题。谢谢!
|
|
|
|
您好!首先请您核查供电电压和参考电压是否正确,然后看接口时序,是否可以正确读写寄存器的值,另外,LDAC是否置高电平,或者拉低后置高。
|
|
|
|
只有小组成员才能发言,加入小组>>
1009 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1398 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1944 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4278 浏览 2 评论
9068 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1565浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1701浏览 2评论
1013浏览 2评论
1687浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1401浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 01:50 , Processed in 0.701734 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号