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

采用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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版