打印

stm32f103vet6 spi2-sst25vf016 死在忙检测出不来

[复制链接]
3225|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
delamu|  楼主 | 2013-6-20 11:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位朋友,帮帮忙啊
程序调试时,总是停留在忙检测出不来,怎么解决呀,郁闷死了

void wip(void){
//        unsigned char a=1;
//        while((a&0x01)==1) a=rdsr();                         //读状态寄存器
        while((rdsr()&0x01)==0x01);                                 // 等待BUSY位清空
}
沙发
delamu|  楼主 | 2013-6-20 12:15 | 只看该作者
void SPI_Flash_Init(void)
{
  SPI_InitTypeDef  SPI_InitStructure;
  GPIO_InitTypeDef GPIO_InitStructure;
   
  /* 使能SPI2 时钟 */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2 ,ENABLE);       
  /* 配置 SPI2 引脚: SCK, MISO 和 MOSI */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_14 ;
  GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOB, &GPIO_InitStructure);       

  /* 配置PA4为SST25VF016B的片选  */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);   
//        GPIO_ResetBits(GPIOD, GPIO_Pin_8);                        //SST25置低WP引脚
//        GPIO_ResetBits(GPIOD, GPIO_Pin_9);                        //SST25置低RST引脚
//        Delay(0xffff);
//        GPIO_SetBits(GPIOD, GPIO_Pin_8);                        //SST25置高WP引脚
//        GPIO_SetBits(GPIOD, GPIO_Pin_9);                        //SST25置高RST引脚


  SPI_Cmd(SPI2, DISABLE);                                            // SPI2配置
  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_Init(SPI2, &SPI_InitStructure);
  
  /* 使能SPI2  */
  SPI_Cmd(SPI2, ENABLE);   
  NotSelect_Flash();  
}

使用特权

评论回复
板凳
delamu|  楼主 | 2013-6-20 12:20 | 只看该作者
SST25_W_BLOCK(0, SST25_buffer,100);                                                //将测试数据写入到SST25VF016B的0页里
用的都是基于库函数的
现在是写函数不成功,读状态寄存器总是忙
问题出在哪里?怎么解决呀?

使用特权

评论回复
地板
lvyunhua| | 2016-6-13 14:07 | 只看该作者
怎么没有人来解决啊。我也碰到这个问题,楼主解决了吗?

使用特权

评论回复
5
zenghuiping88| | 2023-4-3 10:49 | 只看该作者
我也碰到这个问题,读数据全为FFH,等高师提醒

使用特权

评论回复
6
Stahan| | 2023-4-4 23:55 | 只看该作者
这应该是没读成功

使用特权

评论回复
7
失物招領| | 2023-4-9 18:40 | 只看该作者
SPI初始化这块有问题吧

使用特权

评论回复
8
将爱藏于深海| | 2023-4-9 19:26 | 只看该作者
忙检测?就是SPI忙呗?

使用特权

评论回复
9
温室雏菊| | 2023-4-9 22:19 | 只看该作者
估计初始化的时候,开启一下AFIO的时钟吧

使用特权

评论回复
10
西洲| | 2023-4-9 23:55 | 只看该作者
没遇到过,现在都是用cubemxhal了,很简单

使用特权

评论回复
11
捧一束彼岸花| | 2023-4-10 02:52 | 只看该作者
官方不是有关于SPI的操作么?你移植一下试试呢?

使用特权

评论回复
12
一只眠羊| | 2023-4-10 05:22 | 只看该作者
其实可以用demo之中的spi配置的

使用特权

评论回复
13
我吃小朋友| | 2023-4-10 07:23 | 只看该作者
一般要是SPI3才会有问题,有问题是因为NSS这部分

使用特权

评论回复
14
月亮一键变蓝| | 2023-4-10 09:26 | 只看该作者
你换个板子试试呢?感觉看程序好像也没啥问题

使用特权

评论回复
15
故意相遇| | 2023-4-10 11:35 | 只看该作者
你能读出寄存器地址之类的不?

使用特权

评论回复
16
白马过平川| | 2023-4-10 13:11 | 只看该作者
是不是SPI就没初始化正常啊?

使用特权

评论回复
17
Bowclad| | 2023-4-10 23:54 | 只看该作者
是不是spi的问题 啊

使用特权

评论回复
18
Undshing| | 2023-4-11 21:36 | 只看该作者
现在在用hal库了

使用特权

评论回复
19
hanwe| | 2023-7-3 23:50 | 只看该作者
我也碰到这个问题,读数据全为FFH

使用特权

评论回复
20
yufe| | 2023-7-3 23:51 | 只看该作者
这应该是没读成功

使用特权

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

本版积分规则

5

主题

22

帖子

0

粉丝