找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11616|回复: 13
打印 上一主题 下一主题
收起左侧

W25X16引脚图 管脚功能等 SPI FLASH资料下载

  [复制链接]
跳转到指定楼层
楼主
IIC存储空间太有限咯 提供一个SPI FLASH资料W25X16 W25X32很详细的中文资料  可用51可模拟时序对FLASH进行读取和存储操作  
时序比较清楚

W25X16引脚图:


W25X16管脚的功能:


W25X16 W25X32中文资料:


完整的pdf格式文档51黑下载地址(共19页):
W25X16中文资料.pdf (1.39 MB, 下载次数: 123)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-6-19 23:48 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:165364 发表于 2017-6-21 13:00 | 只看该作者
这个是用STM32模拟时许读出芯片的ID的例程
  1. #include "stm32f1xx_hal.h"
  2. #include "stdio.h"

  3. void SPI_Delay(void)
  4. {
  5.         for(uint8_t i=0 ; i<250; i++);
  6. }

  7. void SPI_Init(void)
  8. {
  9.         GPIO_InitTypeDef  gpioinitstruct = {0};
  10.         __HAL_RCC_GPIOC_CLK_ENABLE();

  11.   /* Configure CS_PIN pin:  SPI CS pin */
  12.   gpioinitstruct.Pin    = GPIO_PIN_4;
  13.   gpioinitstruct.Mode   = GPIO_MODE_OUTPUT_PP;
  14.   gpioinitstruct.Pull   = GPIO_PULLUP;
  15.   gpioinitstruct.Speed  = GPIO_SPEED_FREQ_HIGH;
  16.   HAL_GPIO_Init(GPIOC, &gpioinitstruct);

  17.   /* Enable GPIO clock */
  18.   __HAL_RCC_GPIOA_CLK_ENABLE();
  19.   
  20.   /* configure SPI SCK(GPIO_PIN_5) */
  21.   gpioinitstruct.Pin        = GPIO_PIN_5;
  22.   gpioinitstruct.Mode       = GPIO_MODE_OUTPUT_PP;
  23.   gpioinitstruct.Pull       = GPIO_PULLUP;
  24.   gpioinitstruct.Speed      = GPIO_SPEED_FREQ_HIGH;
  25.   HAL_GPIO_Init(GPIOA, &gpioinitstruct);

  26.   /* configure SPI MISO(GPIO_PIN_6) and MOSI(GPIO_PIN_7) */
  27.   gpioinitstruct.Pin        = GPIO_PIN_6;
  28.   gpioinitstruct.Mode       = GPIO_MODE_INPUT;
  29.   gpioinitstruct.Pull       = GPIO_PULLUP;
  30.   gpioinitstruct.Speed      = GPIO_SPEED_FREQ_HIGH;
  31.   HAL_GPIO_Init(GPIOA, &gpioinitstruct);
  32.        
  33.   gpioinitstruct.Pin        = GPIO_PIN_7;
  34.   gpioinitstruct.Mode       = GPIO_MODE_OUTPUT_PP;
  35.   gpioinitstruct.Pull       = GPIO_PULLUP;
  36.   gpioinitstruct.Speed      = GPIO_SPEED_FREQ_HIGH;
  37.   HAL_GPIO_Init(GPIOA, &gpioinitstruct);       

  38.   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET);
  39.   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  40.   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);
  41.   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);       
  42. }


  43. /*
  44. *W25X16ê±ÖóϽμÑØêä3öêy¾Y
  45. *MSBÎaê×λμÄ′«êä
  46. *
  47. */
  48. uint8_t SPI_WriteRead_Byte(uint8_t data)
  49. {
  50.         uint8_t num = 0 , temp = 0 ,rxd_data = 0;       

  51. //·¢Ëíò»¸ö×Ö½úêy¾Y       
  52.         for(num = 0 ; num < 8 ; num++)
  53.         {
  54.                 if((data & 0x80) == 0x80)
  55.                 {
  56.       HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);                       
  57.                 }
  58.                 else
  59.                 {
  60.       HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);                       
  61.                 }
  62.                
  63.                 //flash éÏéyÑØËø′æêy¾Y
  64.                 SPI_Delay();
  65.                 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  66.                 SPI_Delay();
  67.                
  68.                 //flash ϽμÑØêä3öêy¾Y
  69.                 if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_6) == GPIO_PIN_SET)
  70.                 {
  71.                         temp = 0x01;
  72.                         temp <<= (7 - num);
  73.                 }
  74.                 else
  75.                 {
  76.                         temp = 0;
  77.                 }
  78.                 rxd_data |= temp;
  79.                
  80.                 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  81.                
  82.                 data <<= 1;
  83.         }
  84.         return rxd_data;
  85. }

  86. void FLASH_SPI_WriteEnable(void)
  87. {
  88.   /*!< Select the FLASH: Chip Select low */
  89.   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_RESET);       
  90.   
  91.   /*!< Send "Write Enable" instruction */
  92.   SPI_WriteRead_Byte(0x06);
  93.   
  94.   /*!< Select the FLASH: Chip Select low */
  95.   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET);       
  96. }


  97. uint32_t FLASH_Read_ID(void)
  98. {
  99.         uint32_t temp=0,temp0=0,temp1=0;
  100.        
  101.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET);       
  102.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  103.        
  104.         //FLASH_SPI_WriteEnable();
  105.        
  106.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_RESET);       
  107.        
  108.         SPI_WriteRead_Byte(0x90);
  109.         SPI_WriteRead_Byte(0x00);
  110.         SPI_WriteRead_Byte(0x00);
  111.         SPI_WriteRead_Byte(0x00);       

  112.         temp0 = SPI_WriteRead_Byte(0x00);
  113.         temp1 = SPI_WriteRead_Byte(0x00);       

  114.         temp = ((temp0 << 8) | temp1 );
  115.         return temp;       
  116. }

  117. uint32_t FLASH_Read_JEDEC_ID(void)
  118. {
  119.         uint32_t temp=0,temp0=0,temp1=0,temp2=0;
  120.        
  121.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET);       
  122.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  123.        
  124.   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_RESET);       
  125.        
  126.         SPI_WriteRead_Byte(0x9f);
  127.         temp0 = SPI_WriteRead_Byte(0x00);
  128.         temp1 = SPI_WriteRead_Byte(0x00);
  129.         temp2 = SPI_WriteRead_Byte(0x00);
  130.        
  131.        
  132.   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET);       
  133.        
  134.         temp = ((temp0 << 16) | (temp1 << 8) | temp2 );
  135.         return temp;
  136. }

复制代码

评分

参与人数 1黑币 +80 收起 理由
admin + 80 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

地板
ID:68356 发表于 2017-6-23 16:36 | 只看该作者
好资料,收藏了看看
回复

使用道具 举报

5#
ID:211074 发表于 2017-6-23 17:41 | 只看该作者
有中文的说明很不错
省去翻译的麻烦
回复

使用道具 举报

6#
ID:214659 发表于 2017-6-26 10:21 | 只看该作者
好东西,正好用的上,省了我不少事,顶了!
回复

使用道具 举报

7#
ID:183801 发表于 2017-6-26 10:21 | 只看该作者
好资料,不错,支持一下
回复

使用道具 举报

8#
ID:214659 发表于 2017-6-26 10:26 | 只看该作者
不错,很实用,正好用得上,仔细参考一下!
回复

使用道具 举报

9#
ID:165364 发表于 2017-8-16 08:33 | 只看该作者
admin 发表于 2017-6-19 23:48
好资料,51黑有你更精彩!!!

谢谢  版主  !!!
后面还会有更精彩的送上  呵呵
回复

使用道具 举报

10#
ID:227622 发表于 2017-8-16 12:28 来自手机 | 只看该作者
非常厉害,有用
回复

使用道具 举报

11#
ID:295031 发表于 2018-3-21 14:37 | 只看该作者

好资料,收藏了看看
回复

使用道具 举报

12#
ID:395004 发表于 2018-11-9 15:07 | 只看该作者
感谢楼主分享
回复

使用道具 举报

13#
ID:292815 发表于 2019-9-29 16:02 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
ID:457471 发表于 2020-10-27 14:25 | 只看该作者

好资料,51黑有你更精彩!!!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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