SPI通信協議和W25Q64

前言:

STM32中的通信接口:

UART? ? 單總線? ?IIC? ?SPI? ?CAN

1.?SPI???FLASH??W25Q64的關系

SPI:一種通信接口,可以用于和搭載SPI接口的設備通信

FLASH:是一種掉電不丟失的存儲 -- 手機8+256G的256? 單片機 64K+512K的512

芯片內部flash:64K+512K的512K -- 存放個代碼的地方

芯片外部flash:獨立于芯片外部

W25Q64:是flash的一種

如果我們想把數據存儲起來可以有以下幾個方案:

  1. ?5.4.1 備份數據寄存器? -- 并不是每個單片機都有
  2. ?IIC+EEPROM(AT24C02)
  3. ?SPI+FLASH(W25Q64)
  4. 存儲在芯片內部的flash中 -- 512K

1.1?SPI 簡介

SPI作為一種通信接口其數字接口為:

發送:發送方控制數據線的高低電平

接收:接收方讀取對方控制數據線的高低電平

一主多從

CS片選? ? --? 選擇和誰通信
SCK時鐘線
MOSI主機輸出? ?--? 從機輸入
MISO主機輸入? --? 從機接收

MOSI :主機控制這根線的高低電平? 從機讀取這跟線的高低電平

如果STM32作為主機? MOSI要配置成輸出模式

MISO :從機控制這根線的高低電平,主機讀取這根線的高低電平

如果STM32作為主機? MISO要配置成輸入模式

SCK :? 一般是主機控制時鐘線

如果STM32作為主機? SCK要配置成輸出模式

CS :?? 由主機控制

如果STM32作為主機? SCK要配置成輸出模式

1.2 SPI 物理層

1.3 數據鏈路層

時鐘極性CPOL空閑時候,時鐘線的點平為0(低電平)空閑點平為1(高電平)
時鐘相位CPHA

CPHA=0,在串口同步時鐘的第一個(奇數)跳變沿(上升或下降)數據被采集

CPHA=1,在串行同步時鐘的第二個(偶數)跳變沿(上升或下降)數據被采集

所謂的采集:就是讀取對方控制線的高低點平

主機讀取MISO的高低點平

從機讀取MOSI的高低點平

其中的四種模式:

CPOLCPHA
SPI000CLK空閑為低,上升沿采樣;下降沿就發送
SPI101

CLK空閑為低,下降沿采樣;上升沿就發送

SPI210

CLK空閑為高,下降沿采樣;上升沿就發送

SPI311

CLK空閑為高,上升沿采樣;下降沿就發送

1.4 SPI 引腳功能選擇

2 W25Q64

W25Q64? 容量大小:? 64M BIT??? ==? 8M字節

0x0--0x7FFFFF(111 1111 1111 1111 1111 1111)

000 0000 0000 0000 0000 0000

?? 塊?? 扇區? 頁???? 字節

0x700000

111 0000 0000 0000 0000 0000

第112塊(編號從0開始) 0 扇區? 0頁? 0字節

5.1 指令操作

使用的五大原則:

  1. FLASH使用的時候,必須先擦除,再寫。擦除之后,里面放的數據全部都是0xff,flash只能由1變0,不能由0變1。
  2. 不能跨頁寫,超過1頁會從該頁的起始位置覆蓋
  3. 寫之前必須要寫使能
  4. 最小擦除指令就是扇區擦除
  5. 指令執行完,檢測狀態寄存器是否操作完成

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43156.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43156.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43156.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32 GPIO的工作原理

STM32的GPIO管腳有下面8種可能的配置:(4輸入 2 輸出 2 復用輸出) (1)浮空輸入_IN_FLOATING 在上圖上,陰影的部分處于不工作狀態,尤其是下半部分的輸出電路,實際上是與端口處于隔離狀態。黃色的高亮部分顯示…

響應式布局下關于gird柵格布局的一些構思

1、傳列數,根據列數計算元素容器寬度 好處是子元素可以寫百分比寬度,不用固定某一種寬度,反正知道列數通過計算間距就能得到外層容器的寬度。 舉個簡單的例子: (ps:以下用例皆在html中去模擬,就不另外起r…

Python 獲取 SQL 指紋和 HASH 值

前言 本文介紹一個提取 SQL 指紋的方法,就是將 SQL 語句的條件轉換為 ?可用于脫敏和 SQL 聚類分析的場景。 1. 工具安裝 這里用到的工具,就是 pt 工具集中的 pt-fingerprint 含在 Percona Toolkit 中,安裝方法可參考 Percona T…

python7:裝飾器

目錄 1.調用外部程序os.system-阻塞式調用subprocess-python中的模塊 2.裝飾器前戲作用域(1)全局和局部-就近原則(2)嵌套作用域(3)內置作用域、變量 高階函數:函數是最高級的對象(1&…

海外媒體投稿:5個軟文代發經典案例,教大家獲得突破

隨著互聯網的飛速發展,軟文代發成為一種高效的推廣方法。下面我們就詳細介紹五個成功軟文代發推廣實例,致力于幫助讀者把握有關方法,完成突破。 第一實例:社交網絡散播在如今社交媒體時代,軟文代發能夠通過社交平臺迅速…

nodejs實現:支付寶訂單查詢

nodejs實現:支付寶訂單查詢; 原生http請求,不使用三方庫; 代碼如下: const https require(https); const crypto require(crypto); const querystring require(querystring);// 支付寶公共參數 const PRIVATE_KE…

[C++] 輕熟類和對象

類的定義 格式規范 class為定義類的關鍵字,后有類名,類的主體存于{}中;類定義結束時后面的分號不能省略;類體的內容成為類的成員,類中的變量成為成員變量,函數成為方法或成員函數;C兼容C語言的…

微軟 Edge 瀏覽器全解析

微軟 Edge 是微軟推出的一個現代化瀏覽器,繼承了 Internet Explorer(IE)的部分功能,但在速度、安全性和兼容性方面做出了很大改進。下面是對微軟 Edge 瀏覽器的詳細解析,包括其特點、安裝、配置和常見問題的解答。 微軟 Edge 瀏覽器的特點 基于 Chromium 內核 Edge 瀏覽…

SpringBoot配置flyway

背景 目前我們的項目代碼都會交由Git、SVN等版本管理工具進行管理,但是我們的sql腳本,尤其是各類ddl腳本并沒有進行版本的管理(python的web框架Django默認就提供了類似的工具,從一開始就鼓勵開發者通過版本管理的方式進行數據庫的…

C++中的多重繼承和虛繼承:橫向繼承、縱向繼承和聯合繼承;虛繼承

多重繼承 A.橫向多重繼承: B.縱向多重繼承: C.聯合多重繼承: 因為 single 和 waiter 都繼承了一個 worker 組件,因此 SingingWaiter 將包含兩個 worker 組件,那么將派生類對象的地址賦給基類指針將出現二義性 那么如何…

idea http client插件上傳文件,并忽略https證書驗證

上傳文件 ### 傳臨時素材 圖片 POST https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token{{access_token}}&typeimage Content-Type: multipart/form-data; boundary----WebKitFormBoundarywKUX3Xj6aL5Wssnb------WebKitFormBoundarywKUX3Xj6aL5Wssnb Conten…

從Helm到 Operator:Kubernetes應用管理的進化

🧰Helm 的作用 在開始前需要先對 kubernetes Operator 有個簡單的認識。 以為我們在編寫部署一些簡單 Deployment 的時候只需要自己編寫一個 yaml 文件然后 kubectl apply 即可。 apiVersion: apps/v1 kind: Deployment metadata: labels: app: k8s-combat …

去水印小程序源碼修復版-前端后端內置接口+第三方接口

去水印小程序源碼,前端后端,內置接口第三方接口, 修復數據庫賬號密碼錯誤問題,內置接口支持替換第三方接口, 文件挺全的,可以添加流量主代碼,搭建需要準備一臺服務器,備案域名和http…

農牧行業CRM洞察:打造營、銷、服一體化數字營銷平臺

01、行業應用背景 保持企業活力,支撐業務單元協調發展,穩定核心產品競爭力,將成為農牧行業企業數字化、數智化建設的指導方向。 積極發揮數據在生產、流通、消費各個環節的決策支撐,為農牧企業特別是多業態集團型企業&#xff0…

JVM:類的生命周期

文章目錄 一、介紹二、加載階段三、連接階段1、驗證階段2、準備階段3、解析階段 四、初始化階段 一、介紹 類的生命周期描述了一個類加載、連接(驗證、準備和解析)、初始化、使用、卸載的整個過程。 二、加載階段 加載(Loading&#xff09…

全棧業務開發入門——登錄業務接口

業務已上傳則資源 實現登錄業務的前后端聯調,前端點擊登錄按鈕向后端發送一個請求,后端調用接口向前端響應結果 效果如下: 設計環境:springbootmybatisvue3axios 一.前端設計 1.基于vue3腳手架創建項目,搭建項目結構…

LAZYNVIM學習使用筆記

文章目錄 1. 前言VIM的模式快捷鍵參考 1. 前言 習慣使用vscode進行代碼編輯,無意中刷到lazynvim,感覺功能強大,于是下載、安裝,學習使用一下,本篇主要記錄學習使用lazynvim的一些要點,防止遺忘。 持續更新…

帝特(DTECH)USB轉RS485/422串口線在Ubuntu系統中的安裝

因為測試需要,買了一根帝特(DTECH)USB轉RS485/422串口線,今天測試了一下在Ubuntu 22.04系統上的使用。帝特的網站上提供了驅動程序,下載以后發現接口芯片是CP2102,廠商只提供了Linux內核2.6和3.x版本的驅動…

1703:發現它,抓住它

網址如下: OpenJudge - 1703:發現它,抓住它 測,這題差點讓我去世 用了一堆方法來做 后面現學了并查集,用了并查集來做,因為縮短路徑的方法不好,還是超時了 后面換了一種縮短路徑的方法 先上代碼 解法一…

游戲AI的創造思路-技術基礎-情感計算(2)

上一篇我們介紹了情感計算的基本支持,本篇將呈現情感計算在游戲AI中的使用實例~~~ 目錄 7. 情感計算在游戲AI中的運用實例 7.1. RPG游戲中的運用實例 7.1.1. 實例背景 7.1.2. AI情感計算系統 7.1.3. 引導用戶執行任務 7.1.4. 推動游戲劇情發展 7.1.5. 實例效…