打印
[STM8]

STM8 SPI 主模式接收数据奇怪现象

[复制链接]
2627|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shaowei2072009|  楼主 | 2013-6-17 08:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
u8 RecByte_Spi(void)
{
  u8 temp;
// SPI->DR = 0xFF;
  while(!(SPI->SR & 0x02)); //等待发送完成,缓冲为空
  while(!(SPI->SR & 0x01)); //等待接收缓冲区非空
  temp = SPI->DR; //数据读回
  return temp;
}


这是我接收数据的程序,现在一直停在等待接收缓冲为非空,把 ( while(!(SPI->SR & 0x01)); //等待接收缓冲区非空)注释掉的话,接收到的数据一直都是MISO第一次接收到的数据。就好像接收缓冲区一直没被清空,昨天做实验的有一次接收到的数据正常,现在又不可以了。。。
沙发
aozima| | 2013-6-17 09:36 | 只看该作者
// SPI->DR = 0xFF;
不输出数据哪来的时钟?

使用特权

评论回复
板凳
dirtwillfly| | 2013-6-17 14:45 | 只看该作者

使用特权

评论回复
地板
sun1238898| | 2013-6-17 17:36 | 只看该作者
仿真看下spi寄存器内容,// SPI->DR = 0xFF;可以不被注释掉,然后测试看看。

使用特权

评论回复
5
hkcj| | 2013-6-17 20:35 | 只看该作者
不是很了解跌说   需要好好查一查   谢谢楼主

使用特权

评论回复
6
shaowei2072009|  楼主 | 2013-6-17 22:47 | 只看该作者
hkcj 发表于 2013-6-17 20:35
不是很了解跌说   需要好好查一查   谢谢楼主

我也是郁闷啊!模拟的可以通信的,但是用硬件SPI就是不行,数据发送可以,但是MISO的数据接收也是正常的,但是收到RX缓冲里面,好像就没办法更改缓冲器里的值。。现在郁闷中,不知道是不是哪边设置有问题,但是看了手册,好像也没什么配置错误。

使用特权

评论回复
7
zhouhuishu| | 2013-10-12 15:48 | 只看该作者
问题找到没有?,我的更奇怪 一定要调用库才OK。只写的都有问题

使用特权

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

本版积分规则

23

主题

108

帖子

0

粉丝