完善资料让更多小伙伴认识你,还能领取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要设置成从机。
|
|
|
|
只有小组成员才能发言,加入小组>>
1003 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1393 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1941 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4275 浏览 2 评论
9068 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1550浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1700浏览 2评论
1003浏览 2评论
1681浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1393浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 11:56 , Processed in 1.012567 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号