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

[复制链接]
8373|24
 楼主| blackspider_e 发表于 2013-6-7 15:30 | 显示全部楼层 |阅读模式

从器件输出只有24位数据,每次总是先接收oxff
 楼主| blackspider_e 发表于 2013-6-7 15:32 | 显示全部楼层
3.png 4.png 示波器抓的波形
 楼主| 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)
2.png spi.png
 楼主| blackspider_e 发表于 2013-6-7 15:38 | 显示全部楼层
要接收到24位数据,现在总要接收4次,第一次就是0xff,搞不懂为什么,哪里设置不对还是怎么回事

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

IJK 发表于 2013-6-7 16:22 | 显示全部楼层
从器件输出只有24位数据,每次总是先接收oxff

说不定 从器件就是这样的特性
trumpxp 发表于 2013-6-7 19:02 | 显示全部楼层
应该是电路的特性   个人是这么认为的   顶一个
 楼主| blackspider_e 发表于 2013-6-7 20:47 | 显示全部楼层
IJK 发表于 2013-6-7 16:22
从器件输出只有24位数据,每次总是先接收oxff

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

我用软件模拟spi 能正常通讯
 楼主| blackspider_e 发表于 2013-6-7 20:49 | 显示全部楼层
问题是接收到的数据和示波器捉到的波形不一至,面且又只是多了一个oxff
mmuuss586 发表于 2013-6-7 21:49 | 显示全部楼层
那就说明是程序问题了。
 楼主| blackspider_e 发表于 2013-6-8 13:27 | 显示全部楼层
等busy信号
开spi

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

错在哪里???
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();
 楼主| blackspider_e 发表于 2013-6-10 15:06 | 显示全部楼层
我用软件spi是正常的

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

我不可能读一次,复位一次从器件吧
zeluo 发表于 2013-6-10 19:54 | 显示全部楼层
不是很了解   楼主  帮你顶一个  再看看别人的意见吧   顶起来
 楼主| blackspider_e 发表于 2013-6-11 14:18 | 显示全部楼层
zeluo 发表于 2013-6-10 19:54
不是很了解   楼主  帮你顶一个  再看看别人的意见吧   顶起来

多谢,
trumpxp 发表于 2013-6-11 20:05 | 显示全部楼层
问题解决了  就好   帮你顶一个
grasswolfs 发表于 2013-6-11 22:27 | 显示全部楼层
blackspider_e 发表于 2013-6-10 15:06
我用软件spi是正常的

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

一直喜欢用软件SPI的飘过
 楼主| blackspider_e 发表于 2013-10-8 16:04 | 显示全部楼层
后来看别人的程序才发现,硬件spi读数据的sck都是通过写操作提供的,
xxiao6130 发表于 2013-10-8 17:10 | 显示全部楼层
路过,学习、、、
wang168506 发表于 2013-12-10 11:51 | 显示全部楼层
你这是数据接收好像就是四组吧。如果是全1也就是0XFF说明是没有数据的,看你软件的确接收了四次呀 ,有什么不对吗?
上帝在家吗 发表于 2014-8-29 14:28 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

56

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部