4481|3

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

SPI1重映射问题 [复制链接]

各位大虾好,
下面这个是我用的SPI1的重映射,我的SD卡SPI通信口就是链接到这几个口上面的,在调用Mass_Storage_Start ();函数时总是检测不到SD卡,能帮我看下void SPI_Config(void)程序什么问题?谢谢!
void Mass_Storage_Start (void)
{
  /* Disble the JoyStick interrupts */
  IntExtOnOffConfig(DISABLE);

  /* Clear the OLED screen */
  //OLED_Clear(White);
   
  /* Set the Back Color */
  OLED_SetBackColor(Blue);
  /* Set the Text Color */
  OLED_SetTextColor(White);

  if(MSD_Init() != 0x00)
  {
    OLED_DisplayStringLine(Line0, "Warning ");
    OLED_DisplayStringLine(Line1, "   NO   ");
    OLED_DisplayStringLine(Line2, "SD Card ");
    OLED_DisplayStringLine(Line3, "Pres SEL");

    /* Loop until SEL key pressed */
    while(ReadKey() != SEL)
    {
    }
  }
  else
  {
    Get_Medium_Characteristics();

    OLED_Clear(White);
    /* Display the "  Plug the USB   " message */
    OLED_DisplayStringLine(Line1, "  Plug  ");
    OLED_DisplayStringLine(Line2, "USB Cable");
   
    /* Intialize the USB cell */
    USB_Init();
  
    //OLED_ClearLine(Line9);
    /* Display the "To stop Press SEL" message */
    //OLED_DisplayStringLine(Line8, "  To stop Press SEL ");

    /* Loop until SEL key pressed */
    while(ReadKey() != SEL)
    {
    }

    PowerOff();
  }
  OLED_Clear(White);
  //DisplayMenu();
  IntExtOnOffConfig(ENABLE);
  /* Flush SPI1 Data Register */
  SPI_ReceiveData(SPI1);
}



void SPI_Config(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  SPI_InitTypeDef   SPI_InitStructure;

  /* GPIOB Periph clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
  /* SPI1 Periph clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
   
  /* Configure SPI1 output pins: SCK, MISO and MOSI */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  /* Configure SPI1 input pin: MISO */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  /* Configure PB6 pin: CS pin */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  
  /* SPI1 Periph Remap */
  GPIO_PinRemapConfig(GPIO_Remap_SPI1, ENABLE);

  /* SPI1 Config */
  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_4;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_Init(SPI1, &SPI_InitStructure);

  /*Enable SPI1.NSS as a GPIO*/
  //SPI_SSOutputCmd(SPI1, ENABLE);
  
  /* SPI1 enable */
  SPI_Cmd(SPI1, ENABLE);
}
此帖出自stm32/stm8论坛

最新回复

                                 SPI的MISO也要配置为AF_PP: /* Configure SPI1 output pins: SCK, MISO and MOSI */   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   GPIO_Init(GPIOB, &GPIO_InitStructure); 估计你没有仔细看参考手册和STM32的软件库的例程,自说自画就认为MISO要设置为输入口。  详情 回复 发表于 2009-12-24 09:30
点赞 关注
 

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 好长的码……还是小字,看的好费劲啊
此帖出自stm32/stm8论坛
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 是啊,字体弄大点嘛
此帖出自stm32/stm8论坛
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
SPI的MISO也要配置为AF_PP:
/* Configure SPI1 output pins: SCK, MISO and MOSI */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

估计你没有仔细看参考手册和STM32的软件库的例程,自说自画就认为MISO要设置为输入口。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表