完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
AD7790上电默认连续转换模式,初始化配置为100Hz速率,利用SPI_RDY作为STM32的外部中断,读取ADC转换结果,相关代码如下:
// ADC初始化,配置100Hz更新速率 无效的 AD_ Init () { spi1_init () ; spi_cs1=0; spi1_ readwritebyte( 0x20) ; spi1_ readwritebyte( 0x01) ; } // ADC 数据读取 u16 ad_read() { u16 RXbuf; /spi_cs1=0; EE_CS=1; spi1_ readwritebyte( 0x38) ; SPI1->CR1|=1<<11; // 16 bit data while((SPI1->SR 1<<1)==0); SPI1->DR=0; while((SPI1->SR 1<<0)==0); RXbuf = SPI1->DR; SPI1->CR1 =~(1<<11); 返回RXbuf; } 测试结果如下: 1) 大部分情况下,上电测试读取数据正常; 2)存在一定概率,上电后数据读取异常,结果为0x00或0xFF; 3)异常数据时,观测SPI波形,显示更新速率为16.6Hz(ADC默认),但是数据结果异常(0xFF居多) 出现异常后,无论ADC如何再次配置,都无法恢复正常,只有ADC重新上电才可以恢复 根据芯片数据手册来看,目前的配置过程应该正确,但是不清楚为什么有时候无法正常读取数据,而且此状态不开恢复,除非芯片重新上电? 请教哪位用过的高人指点下,谢谢 |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
804 浏览 0 评论
814 浏览 1 评论
771 浏览 1 评论
电路小知识 | 交流电路复数的基础知识以及相位差和电抗的计算
624 浏览 0 评论
1853 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 17:50 , Processed in 0.596283 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号