打印

stm8 硬件spi 如何读取24位数据

[复制链接]
7223|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

从器件输出只有24位数据,每次总是先接收oxff
沙发
blackspider_e|  楼主 | 2013-6-7 15:32 | 只看该作者
示波器抓的波形

使用特权

评论回复
板凳
blackspider_e|  楼主 | 2013-6-7 15:34 | 只看该作者
while( TM7705_BUSY );
    SPI_Cmd(ENABLE);  
        while (SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET)
        {
        }
        ad_data_temp[0] = SPI_ReceiveData();
      
        while (SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET)
        {
        }
        ad_data_temp[1] = SPI_ReceiveData();
        while (SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET)
        {
        }
        ad_data_temp[2] = SPI_ReceiveData();
        while (SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET)
        {
        }
        ad_data_temp[3] = SPI_ReceiveData();

    SPI_Cmd(DISABLE);

TM7705_CS(DISABLE)

使用特权

评论回复
地板
blackspider_e|  楼主 | 2013-6-7 15:38 | 只看该作者
要接收到24位数据,现在总要接收4次,第一次就是0xff,搞不懂为什么,哪里设置不对还是怎么回事

stm8硬件spi如何才能准确控制sck呢,比如我只要8个sck来接收一字节?

使用特权

评论回复
5
IJK| | 2013-6-7 16:22 | 只看该作者
从器件输出只有24位数据,每次总是先接收oxff

说不定 从器件就是这样的特性

使用特权

评论回复
6
trumpxp| | 2013-6-7 19:02 | 只看该作者
应该是电路的特性   个人是这么认为的   顶一个

使用特权

评论回复
7
blackspider_e|  楼主 | 2013-6-7 20:47 | 只看该作者
IJK 发表于 2013-6-7 16:22
从器件输出只有24位数据,每次总是先接收oxff

说不定 从器件就是这样的特性 ...

我用软件模拟spi 能正常通讯

使用特权

评论回复
8
blackspider_e|  楼主 | 2013-6-7 20:49 | 只看该作者
问题是接收到的数据和示波器捉到的波形不一至,面且又只是多了一个oxff

使用特权

评论回复
9
mmuuss586| | 2013-6-7 21:49 | 只看该作者
那就说明是程序问题了。

使用特权

评论回复
10
blackspider_e|  楼主 | 2013-6-8 13:27 | 只看该作者
等busy信号
开spi

等spi接收寄存器不为空
接收

错在哪里???

使用特权

评论回复
11
IJK| | 2013-6-10 09:52 | 只看该作者
blackspider_e 发表于 2013-6-7 20:49
问题是接收到的数据和示波器捉到的波形不一至,面且又只是多了一个oxff

把第一次读当做dummy read好了:

SPI_Cmd(ENABLE);
SPI_ReceiveData();  
         while (SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET)
         {
         }
         ad_data_temp[0] = SPI_ReceiveData();

使用特权

评论回复
12
blackspider_e|  楼主 | 2013-6-10 15:06 | 只看该作者
我用软件spi是正常的

而用硬件spi,每一次多读一个oxff,同时也会有超过3字节的spi时钟
第一次只是多一个oxff,当然可以忽略
问题是第二次就读(可能是因为多出来的spi时钟),就混乱了,

我不可能读一次,复位一次从器件吧

使用特权

评论回复
13
zeluo| | 2013-6-10 19:54 | 只看该作者
不是很了解   楼主  帮你顶一个  再看看别人的意见吧   顶起来

使用特权

评论回复
14
blackspider_e|  楼主 | 2013-6-11 14:18 | 只看该作者
zeluo 发表于 2013-6-10 19:54
不是很了解   楼主  帮你顶一个  再看看别人的意见吧   顶起来

多谢,

使用特权

评论回复
15
trumpxp| | 2013-6-11 20:05 | 只看该作者
问题解决了  就好   帮你顶一个

使用特权

评论回复
16
grasswolfs| | 2013-6-11 22:27 | 只看该作者
blackspider_e 发表于 2013-6-10 15:06
我用软件spi是正常的

而用硬件spi,每一次多读一个oxff,同时也会有超过3字节的spi时钟

一直喜欢用软件SPI的飘过

使用特权

评论回复
17
blackspider_e|  楼主 | 2013-10-8 16:04 | 只看该作者
后来看别人的程序才发现,硬件spi读数据的sck都是通过写操作提供的,

使用特权

评论回复
18
xxiao6130| | 2013-10-8 17:10 | 只看该作者
路过,学习、、、

使用特权

评论回复
19
wang168506| | 2013-12-10 11:51 | 只看该作者
你这是数据接收好像就是四组吧。如果是全1也就是0XFF说明是没有数据的,看你软件的确接收了四次呀 ,有什么不对吗?

使用特权

评论回复
20
上帝在家吗| | 2014-8-29 14:28 | 只看该作者
:'(

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

56

帖子

1

粉丝