OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6400|回复: 8

SPI问题

[复制链接]

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
发表于 2013-10-28 15:22:12 | 显示全部楼层 |阅读模式


   原子哥,上面是M0的片子写的一个SPI程序段(一个片子的样例),是读从机寄存器返回第一个字节,我想问一个问题,他这种写法,不发送0XFF就能读出从机的内容?这个是什么原因?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-28 18:38:20 | 显示全部楼层
你没看到他还调用了另外一个函数么?
ReadWrite429,这个函数.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-28 20:52:27 | 显示全部楼层
回复【2楼】正点原子:
你没看到他还调用了另外一个函数么? ReadWrite429,这个函数.
---------------------------------
这个函数的内容其实就是和你的函数一样的   里面多了片选
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-28 21:00:52 | 显示全部楼层
回复【2楼】正点原子:
你没看到他还调用了另外一个函数么? ReadWrite429,这个函数.
---------------------------------
u8 ReadWriteSPI(u8 DeviceNumber, u8 TXData, u8 LastTransfer)  
{
  u8 Result;  
  switch(DeviceNumber)   //选择设备号 
  { 
    case SPI_DEV_TMC429:    //选择控制卡设备 
         GPIOA->BRR=BIT6;   // 清零寄存器  片选置低    
         break;

    case SPI_DEV_TMC260:   //选择驱动器设备
         GPIOA->BRR=BIT7;   //片选
         break;

    default:
         break;
  }

  switch(DeviceNumber)
   {  
    case SPI_DEV_TMC429:
    case SPI_DEV_TMC260:
 
    while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET); //检查指定的SPI标志位设置与否:发送缓存空标志位   
  SPI_I2S_SendData(SPI2,TXData); //通过外设SPIx发送一个数据
  while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET); //检查指定的SPI标志位设置与否:接受缓存非空标志位         
  Result=SPI_I2S_ReceiveData(SPI2); //返回通过SPIx最近接收的数据   
          break;
  
    default:
          Result=0;
          break;
   }
   if(LastTransfer)     
   {                              
          GPIOA->BSRR=BIT6|BIT7;   //FALSE: device will be kept selected (for sending more bytes) \n                                 //TRUE: the device will be deselected(取消选定) after the transfer \n
    }
   return Result;   //返回读取到的数据
}
 这个是ReadWrite429里面的内容,我是按照他的M0的片子改的,读到的内容都是0XFF,所以我就产生了那个疑问
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-29 09:57:59 | 显示全部楼层
 


原子哥  我认为我现在配置的片子和SPI实验中的W25Q16不同,你看这个是时序图,而且这个片子是有外接时钟信号的,我看了W25Q64的数据手册,所以不需要发0XFF,而只需要发命令,是不是有时钟的原因?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-29 12:25:09 | 显示全部楼层
回复【4楼】cyz8320350:
---------------------------------
读到是0XFF,可能你的驱动没整好,芯片没鸟你。
回复【5楼】cyz8320350:
---------------------------------
你这什么片子??
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-29 12:49:04 | 显示全部楼层
回复【6楼】正点原子:
回复【4楼】cyz8320350: --------------------------------- 读到是0XFF,可能你的驱动没整好,芯片没鸟你。 回复【5楼】cyz8320350: --------------------------------- 你这什么片子??
---------------------------------
SPI没整好么?  这个是步进电机的控制芯片,那我看看到底是哪里配置错了
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-29 14:55:13 | 显示全部楼层
回复【6楼】正点原子:
回复【4楼】cyz8320350: --------------------------------- 读到是0XFF,可能你的驱动没整好,芯片没鸟你。 回复【5楼】cyz8320350: --------------------------------- 你这什么片子??
---------------------------------
原子哥  你看我那个时序图   是不是CPHA和CPOL都是1啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-30 00:35:00 | 显示全部楼层
回复【8楼】cyz8320350:
---------------------------------
哪个图?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 23:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表