你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

采用stm32cubemx进行SPI设置的方法  

[复制链接]
feiante 发布时间:2015-1-13 16:35
阅读主题, 点击返回1楼
收藏 3 评论27 发布时间:2015-1-13 16:35
27个回答
时光碎了天 回答时间:2015-1-30 11:26:27
好贴,谢谢了
为它停留 回答时间:2015-1-30 11:37:38
feiante 发表于 2015-1-30 11:15
一般不应该是0,如果读不到,应该是FF

SPI的引脚配置可以这样设置吗?    /**SPI1 GPIO Configuration   
    PB3     ------> SPI1_SCK
    PB4     ------> SPI1_MISO
    PB5     ------> SPI1_MOSI
    */
    GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
逍遥李 回答时间:2015-1-31 10:29:41
感谢分享,
为它停留 回答时间:2015-1-31 15:35:56
我的ID读正确了,还是时候问题,我的是F407,用cube不能进行擦除,你看看我的代码哪有有问题?
void SPI_FLASH_SectorErase(uint32_t SectorAddr)
{
  SPI_FLASH_WriteEnable();
  SPI_FLASH_CS_LOW();
  SPI_FLASH_SendByte(W25X_SectorErase);
  SPI_FLASH_SendByte((SectorAddr & 0xFF0000) >> 16);
  SPI_FLASH_SendByte((SectorAddr & 0xFF00) >> 8);
  SPI_FLASH_SendByte(SectorAddr & 0xFF);
  SPI_FLASH_CS_HIGH();
  SPI_FLASH_WaitForWriteEnd();
}
为它停留 回答时间:2015-1-31 15:38:30
为它停留 发表于 2015-1-31 15:35
我的ID读正确了,还是时候问题,我的是F407,用cube不能进行擦除,你看看我的代码哪有有问题?
void SPI_FL ...

void SPI_FLASH_WriteEnable(void)
{
  SPI_FLASH_CS_LOW();
  HAL_SPI_Transmit(&hspi1, &W25X_WriteEnable, 1, 100);
  SPI_FLASH_CS_HIGH();
}
uint8_t SPI_FLASH_SendByte(uint8_t byte)
{
        uint8_t temp;
        uint8_t temp1[1];
        HAL_SPI_TransmitReceive(&hspi1, &byte, &temp1[0], 1,100);
        temp=temp1[0];
        return temp;
}
void SPI_FLASH_WaitForWriteEnd(void)  
{   
        uint8_t FLASH_Status=0;
        uint8_t temp1[1];
        SPI_FLASH_CS_LOW();
  HAL_SPI_Transmit(&hspi1, &W25X_ReadStatusReg, 1, 100);       
        do
  {
                HAL_SPI_TransmitReceive(&hspi1, &Dummy_Byte, &temp1[0], 1,100);
                FLASH_Status = temp1[0];
  }
        while ((FLASH_Status & WIP_Flag) == SET);
        SPI_FLASH_CS_HIGH();
}
这是用调用到的函数
lslp 回答时间:2015-7-21 20:55:59
我一会是0,一会255.。
meteor911 回答时间:2015-7-27 16:19:20
小弟最近在试验通过SPI1读取W25Q64CV的ID号
按帖子的方法读到的ID号都为0
请各位大大指点一下, 谢谢

采用STM32F030C8芯片
CS为PB6,SCK为PB3,MISO为PB4,MOSI为PB5
程序代码如下:
擷取2.JPG
擷取3.JPG
擷取1.JPG
Sphinx001 回答时间:2015-9-11 13:21:05
为什么我循环读ID,第一次读到的全FF,之后就能正常读到ID号,你的是一次就成功读到ID号码?
linshifaa 回答时间:2015-9-11 19:40:50
学习了
嗨你好 回答时间:2015-12-4 13:47:11
feiante 发表于 2015-1-30 11:15
一般不应该是0,如果读不到,应该是FF

我的也是SPI1主、SPI4从,发送出去没问题,spi4中断接收,总是收不到数,求解,怎么觉得没有标准库好用啊?

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版