完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
不知为啥SDO口数据一直不正常,是不是我程序写的有问题,请帮看一下,我用的Keil4编程软件,控制器是STM32单片机。
端口定义: #define SCO PBin(4) //在单片机看来是输入,AD是输出 #define SDI PCout(12) //在单片机看来是输出,AD是输入 #define FSI PCout(11) #define FSO PBin(3) #define RSET PCout(10) #define PA0 PAout(0) #define SYNC PAout(15) #define SDO GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_2) #define OVE GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5) //初始化 RSET = 0; delay_us(1); RSET = 1; delay_us(1); FSI =1; delay_us(1); //写函数 void ADC_Write_oneword(uint16_t address,uint16_t wrdata) { u8 i,j; FSI = 1; FSI = 0; for(i=0;i<16;i++) { if(address&0x8000) SDI = 1; else SDI = 0; address<<=1; } for(j=0;j<16;j++) { if(wrdata&0x8000) SDI = 1; else SDI = 0; wrdata<<=1; } FSI = 1; } 7765控制寄存器的D13是ReadGain,是不是把这一位置一以后,SDO就有数据输出了? 不知怎的,FSO一直没有拉低过,显然是没有数据输出吧,不知究竟是怎么读数据的,求指点,另外,我板子上这些与单片机相连的AD口都忘了加0r的电阻(其他地方有),会不会有影响呢。如不吝赐教,十分感谢! |
|
相关推荐
2个回答
|
|
您好!
建议您回读寄存器试一下。回读寄存器值,需要置低FSI,然后通过SDI写入地址和回读操作,拉高FSI后经过8×tsco,FSO输出会变低电平,随后SDO输出寄存器值。首先应确定FSI,SDI操作是否按照数据手册中表3时序要求进行操作。还有要注意的是电源,地,参考输入,MCLK,RESET等基本输入信号是否正常。此外,您也可以换一片芯片试一下。 |
|
|
|
AD7765是主机,STM32要设置成从机。
|
|
|
|
只有小组成员才能发言,加入小组>>
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1753 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4130 浏览 2 评论
8850 浏览 1 评论
3062 浏览 1 评论
7017 浏览 2 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1196浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1508浏览 2评论
1431浏览 2评论
1196浏览 1评论
1039浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-10 10:29 , Processed in 0.822165 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191