完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 大学士鳌拜 于 2020-1-15 15:21 编辑
刚注册,没积分,站着求解答。 设备是ads1261+STM32F429ZI开发板 使用CubeMX配置的SPI5。 使用HAL_TransmitReceive(&hspi5,TxBuffer,RxBuffer,1000)进行SPI通讯。 根据手册,ads1261在power_on的时候会RESET。 第一个操作就是读取这个AD的STATUS寄存器(地址为01h),CRC关闭时RREG命令格式如下: byte1____________byte2__________byte3 发送 0x20+addr Arbitary 00h 接收 FFh Echo byte1 Register data 执行 以下代码: TxBuffer [3]={0x21,0x00,0x00}; RxBuffer[3]; HAL_TransmitReceive(&hspi5,TxBuffer,RxBuffer,1000) 完毕后RxBuffer={0xFF,0xA1,0xFF}; 如果我继续在读一次该寄存器,则RxBuffer ={0x80,0xFF,0x80}; 如果不停读下去,RxBuffer 会在{0x80,0xFF,0x80};和{0xFF,0xB0,0xFF};之间交替 结果显然是错误的! 问题: 1.Echo byte1 字面意思是字节1的回声,是不是应该是 0x20+addr ?我试了很多命令,收到的Echo byte1 都是发送命令的第一字节的高位bit置1,就像上面的0xA1 2.无论读哪个寄存器,读到的寄存器数据都是0xFF;这是为什么? 3.我认为SPI应该正常。大家是否另有见解? |
|
相关推荐
2个回答
|
|
|
首先保证你能够读取到ID信息,这个片子的通讯时钟不能太快
|
|
|
|
|
|
看不懂啊 英文都是什么意思
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2797 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2403 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2276 浏览 0 评论
2388 浏览 1 评论
1637 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:27 , Processed in 0.672435 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
374