完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教两个关于SPI的问题,第一个是,无论SPI工作于何种方式,是否数据传输都是以一字节为单位,即一次只传输8位的数据,不能一次传输更多位?比如一次传输16位数据?18位?24位?或者更多等等,第二个问题是由第一问题产生的,我现在用STM8的SPI来接收24位AD芯片的数据,只要给时钟给AD芯片,然后接收就可以了,但是这个数据是连续的24位,中间不会有任何间隔或停顿,这个用STM8的SPI能实现吗?
|
|
相关推荐
5个回答
|
|
这个问题得分两部分,主机端是时钟控制端所以多个字节合并只要控制好时钟就行了,如果使用发送空中断可以做到无缝的发送.
从机端的收发可以把多台发送和接收串联起来扩展成多个字节,因为spi实质上就是一个环形移位器.你可以参考一下菊花链电路. |
|
|
|
当然可以。自己控制CS拉低,送出N字节*8bit的时钟,再拉高CS就行
|
|
|
|
控制片选CS 就可以了。
|
|
|
|
谢谢各位的回答,这个AD芯片无片选功能,TI的ADS1251.
|
|
|
|
已经搞定了,谢谢各位,其实就是连续读三次就好了,根据数据情况,比如ADC芯片发送数据的顺序是先高后低,那么第一次读到的就是数据最高8位,这个时候把它左移16位放进一个变量,再读中间的8位,然后左移8位放进一个变量,剩下最后一个直接赋值给一个变量,然后三个变量按位与就可以了,这里的三个变量必须定义为32位的。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:47 , Processed in 0.639093 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号