久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12355|回復: 13
收起左側

W25X16引腳圖 管腳功能等 SPI FLASH資料下載

  [復制鏈接]
ID:165364 發表于 2017-6-19 09:10 | 顯示全部樓層 |閱讀模式
IIC存儲空間太有限咯 提供一個SPI FLASH資料W25X16 W25X32很詳細的中文資料  可用51可模擬時序對FLASH進行讀取和存儲操作  
時序比較清楚

W25X16引腳圖:
0.png

W25X16管腳的功能:
0.png

W25X16 W25X32中文資料:
0.png

完整的pdf格式文檔51黑下載地址(共19頁):
W25X16中文資料.pdf (1.39 MB, 下載次數: 123)



回復

使用道具 舉報

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 | 顯示全部樓層
好資料,收藏了看看
回復

使用道具 舉報

ID:211074 發表于 2017-6-23 17:41 | 顯示全部樓層
有中文的說明很不錯
省去翻譯的麻煩
回復

使用道具 舉報

ID:214659 發表于 2017-6-26 10:21 | 顯示全部樓層
好東西,正好用的上,省了我不少事,頂了!
回復

使用道具 舉報

ID:183801 發表于 2017-6-26 10:21 | 顯示全部樓層
好資料,不錯,支持一下
回復

使用道具 舉報

ID:214659 發表于 2017-6-26 10:26 | 顯示全部樓層
不錯,很實用,正好用得上,仔細參考一下!
回復

使用道具 舉報

ID:165364 發表于 2017-8-16 08:33 | 顯示全部樓層
admin 發表于 2017-6-19 23:48
好資料,51黑有你更精彩!!!

謝謝  版主  !!!
后面還會有更精彩的送上  呵呵
回復

使用道具 舉報

ID:227622 發表于 2017-8-16 12:28 來自觸屏版 | 顯示全部樓層
非常厲害,有用
回復

使用道具 舉報

ID:295031 發表于 2018-3-21 14:37 | 顯示全部樓層

好資料,收藏了看看
回復

使用道具 舉報

ID:395004 發表于 2018-11-9 15:07 | 顯示全部樓層
感謝樓主分享
回復

使用道具 舉報

ID:292815 發表于 2019-9-29 16:02 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:457471 發表于 2020-10-27 14:25 | 顯示全部樓層

好資料,51黑有你更精彩!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久噜噜噜精品国产亚洲综合 | 国产片一区二区三区 | 亚州成人 | 午夜影院网站 | 欧美日一区 | 欧美日韩综合视频 | 超碰av在线 | 在线成人免费视频 | av官网在线 | 亚洲一二三在线观看 | 亚洲国产精品久久人人爱 | 亚洲成人免费视频 | 人人干人人爽 | 在线看无码的免费网站 | 久久香蕉精品视频 | 国产精品欧美一区二区三区不卡 | 免费黄篇 | 久久久久久久久久久福利观看 | 国产精品不卡一区 | 亚洲精品一区av在线播放 | 国产久 | 在线观看av免费 | 日韩欧美专区 | av国产精品毛片一区二区小说 | 日韩免费高清视频 | 国产精品毛片一区二区三区 | 亚洲人成人一区二区在线观看 | 国产美女永久免费无遮挡 | 国产精品久久久久久久久久久新郎 | 午夜丁香视频在线观看 | 亚洲综合视频 | 一区二区三区日 | 亚洲一区综合 | 国产精品久久久99 | 亚洲视频自拍 | 欧美xxxx日本 | 99re在线视频 | 日韩视频中文字幕 | 99福利网| 免费国产一区 | 欧美日本在线观看 |