STM32-----SPI

SPI簡介

SCK:

和I2C中SCL的時鐘線一個作用,都是在高電平拿出數據,在低電平寫數據

MOSI:

主機輸出從機輸入

MISO:

主機輸入從機輸出,只有當對應從機的SS為低電平,從機的MISO引腳才能設置推挽輸出,當從機SS為高電平時,引腳為高阻態

SS:

從機選擇線,主機想選擇誰就把誰的SS線置低電平(起始條件),當主機想結束通信就把指定從機SS置高電平(終止條件)。SPI就可以不用像I2C一樣通過通信線找從機地址,

注:SPI不允許多主多從,只允許一主多從

當SCK高電平時主機和從機的移位寄存器的高位數據會移到數據線上(SPI是高位先行),移位數據寄存器的剩下7位會整體向高處平移,當SCK低電平時主機和從機都會獲取數據線上的數據進入移位數據寄存器的最低位,依次進行8次一個字節的數據就傳輸完成

如果只想接收不想發送,我們就隨便發送一個數據(從機不會看他,我們一般發0x00或0xff),再讀移位數據寄存器進行了

如果只想發送不想接收,我們不讀接收過來的數據進行了?

四種模式

模式0:

模式0:就是在SCK高電平時接收在數據線上的數據,在SCK低電平時將以移位寄存器上的數據發送到數據線上,因為SCK一開始就是低電平所以當SS置低電平時就要把數據發送到數據線上

模式一:

就是在SCK高電平時發送數據,在低電平時接收數據

模式一和模式三的區別就是SCK的極性取反,模式0和模式2的區別也是SCK的極性取反

注:CPHA決定的是第幾個時鐘沿采樣,并不能決定上升沿采樣或下降沿采樣,只有確定CPOL,CPHA才能決定是上升沿采樣或下降沿采樣

軟件控制SPI

發送指令

在SPI中第一個交換的字節是指令碼加讀寫模式,在從機中有相應的指令集,發送不同的指令碼會與從機中的指令集對應,來產生指令

指定地址寫

當發送完指令碼(0x02,這是指定地址寫的指令)后發送指定地址,不同的芯片地址大小不一樣(具體要發多少位字節的地址要看芯片手冊),由于SPI沒有應答機制,發送完一個字節就可以繼續發送下一個字節,

有些芯片可能會把地址融合到指令碼里面

指定地址讀

指定地址讀的指令碼是(0x03),再發送要指定的地址后,交換的發送字節我們發送0x00或0xFF

這時交換回來的字節就是我們想要的數據

注:這時軟件指定SPI,只要我們在軟件方面指定每個字節的作用就很容易控制SPI

硬件SPI

8/16位數據幀代表,發送一次發送一個字節還是兩個字節

時鐘頻率都是從外設時鐘線上分頻得的,硬件SPI有兩個資源SPI1,SPI2,SPI1搭載APB2時鐘線(72MHZ),SPI2搭載APB1時鐘線(32MHZ)

當發送緩沖區把數據發送到移位數據寄存器時會置標志位(TXE)為1,表示發送緩沖區空

當移位寄存器把數據發送到接收緩沖區后會置標志位(RXNE)為一,表示接收緩沖區非空

硬件SPI支持主機變從機,此時MOSI和MISO的電路會更換

硬件電路沒有配置SS設備,從機選擇需要我們用軟件實現

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

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

相關文章

華為考試:HCIE數通考試難度分析

隨著信息技術的飛速發展,網絡技術已成為支撐各行各業運轉的重要基礎,市場對高水平網絡技術人才的需求持續增長。HCIE作為華為認證體系中的最高級別認證,代表了網絡技術領域的專業頂尖水平。本文將對HCIE數通認證的考試內容、難度及備考策略進…

一些常用的激活函數及繪圖

深度網絡的一些常用激活函數,并通過matplot繪制出來: import matplotlib.pyplot as plt import numpy as npdef relu(x):return np.maximum(0, x)def leaky_relu(x, alpha0.01):return np.where(x > 0, x, alpha * x)def gelu(x):return 0.5 * x * (1…

AE蘋果手機iPhone 17展示動畫片頭模板 App Promo Phone 17 Pro

專為 App 發布會、電商促銷、新品宣傳 打造的 iPhone 17 Pro 動畫展示 AE 模板。 4K 超清分辨率 26 張可替換照片位,無需第三方插件,拖拽即可輸出專業級手機宣傳片。 核心亮點 4K 超清:38402160 分辨率,大屏投放與社媒高清壓縮無…

基于Python的云原生TodoList Demo 項目,驗證云原生核心特性

以下是一個基于 Python 的云原生 TodoList Demo 項目,涵蓋 容器化、Kubernetes 編排、CI/CD、可觀測性、彈性擴縮容 等核心云原生特性,代碼簡潔且附詳細操作指南,適合入門學習。項目概覽 目標:實現一個支持增刪改查(CR…

go 日志的分裝和使用 Zap + lumberjack

自帶的log無法滿足 按大小輪轉 ,按天數清理舊日志 ,自動壓縮 ,限制備份數量 ,防止磁盤寫滿 ,生產環境推薦 等 使用 Zap lumberjack package mainimport ("go.uber.org/zap""go.uber.org/zap/zapcore&q…

【.Net技術棧梳理】01-核心框架與運行時(CLR)

文章目錄1 .NET Runtime(CLR-公共語言運行時)1.1 中間語言 IL1.1.1 從源代碼到通用中間語言(IL)1.1.2 運行時加載:CLR登場1.1.3 核心步驟:即時編譯 (JIT Compilation)1.1.4 執行與內存管理(GC&a…

Claude Code 平替:OpenAI發布 Codex CLI ,GPT-5 國內直接使用

openai推出的命令行編程工具codex已經可以使用最新 GPT-5 模型,擁有可媲美 Claude Code 的 AI 編碼能力。本文將指導你在 Windows 系統上部署原生的 Codex CLI 程序,并接入超低價中轉 API,讓你在國內直接用上超高性價比的 OpenAI Codex CLI 應…

在VS2022的WPF仿真,為什么在XAML實時預覽點擊 ce.xaml頁面控件,卻不會自動跳轉到具體代碼,這樣不方便我修改代碼,

在VS2022的WPF仿真,為什么在XAML實時預覽點擊 WpfApp1\FunctionalModule\08Replace\Replace.xaml頁面控件,卻不會自動跳轉到具體代碼,這樣不方便我修改代碼,

Git Bash 別名

有些常用的指令參數非常多,每次都要輸入好多參數,我們可以使用別名。Linux 系統中很多 shell,包括 bash,sh,zsh,dash 和 korn 等,不管哪種 shell 都會有一個 .bashrc 的隱藏文件,它就…

Centos7部署ceph存儲

一、準備5臺centos7主機 node節點雙網卡&#xff08;1個內部檢測&#xff0c;1個外部使用&#xff09;node節點都添加新網卡關閉防火墻和上下文都需要添加hosts文件都需要cat > /etc/hosts << EOF > 127.0.0.1 localhost localhost.localdomain localhost4 loca…

2025.9.10總結

今日感悟&#xff1a;刷到00后下班去菜市場撿菜的熱點視頻&#xff0c;確實挺有意思&#xff0c;不得不說&#xff0c;又省錢又好玩。雖然每天晚上能免費領個25塊錢的水果回去&#xff0c;但確實沒有什么新鮮感了。別人下班還能撿撿菜放松下&#xff0c;我下班&#xff0c;除了…

【數據結構與算符Trip第2站】稀疏數組

稀疏sparsearray數組 什么是稀疏數組&#xff1f; 稀疏數組是一種特殊的數據結構&#xff0c;用于高效存儲和表示大部分元素為零&#xff08;或默認值&#xff09;的數組。它通過只存儲非零元素的位置和值來節省內存空間。是一種壓縮數組。 實現原理 在Go語言中&#xff0c;稀疏…

Sub-GHz無線收發單片機,低功耗物聯網通信的硬件“基石”

隨著物聯網應用持續向規模化部署、廣域化覆蓋與高效化協同邁進&#xff0c; 作為IoT終端設備實現無線交互的核心通信單元之一——Sub-GHz無線收發單片機&#xff08;Sub-GHz射頻收發芯片與單片機高度集成&#xff09;已成為系統設計中進一步簡化外圍元件數量、縮小硬件體積、降…

用Typescript 的方式封裝Vue3的表單綁定,支持防抖等功能

在 Vue3 中結合 TypeScript 封裝表單綁定方案時&#xff0c;需要綜合考慮類型安全、功能擴展性和開發體驗。以下是一個包含防抖功能、支持多種表單控件、具備完整類型推導的封裝方案&#xff0c;全文約 2300 字&#xff1a; 方案設計思路 組合式函數封裝&#xff1a;使用 Vue3 …

中悅大華通過訂單日記實現流程重構之路

一、客戶背景 安徽中悅大華高速流體機械有限公司&#xff0c;成立于2023年&#xff0c;位于安徽省宣城市&#xff0c;是一家以從事電子設備制造為主的企業&#xff0c;在多年的商業經營中已成為業界翹楚。 在業務不斷壯大的過程中&#xff0c;面臨生產協作效率低&#xff0c;庫…

【Springboot】介紹啟動類和啟動過程

【Springboot】介紹啟動類和啟動過程【一】Spring Boot 啟動類的注解【1】核心注解&#xff1a;SpringBootApplication&#xff08;1&#xff09;?SpringBootConfiguration?&#xff1a;Spring容器會從該類中加載Bean定義&#xff08;2&#xff09;?EnableAutoConfiguration…

Gears實測室:第一期·音游跨設備性能表現與工具價值實踐

在音游品類中&#xff0c;《跳舞的線》以 “音樂與操作節奏深度綁定” 的玩法特性&#xff0c;對設備性能提出了特殊要求 —— 穩定的幀率與低延遲的渲染響應&#xff0c;直接影響玩家對音符時機的判斷&#xff0c;一旦出現卡頓或幀波動&#xff0c;易導致操作失誤&#xff0c;…

格式刷+快捷鍵:Excel和WPS表格隔行填充顏色超方便

有時候我們會對Excel或WPS表格的數據區域每隔一行填充一個底紋&#xff0c;便于閱讀和查看。可以使用條件格式搭配公式實現&#xff0c;也可以手動設置。通常手動設置的時候是先設置一行&#xff0c;然后再雙擊格式刷應用。可以有更快的方式&#xff1a;先設置一行底紋&#xf…

將現有Spring Boot項目作為模塊導入到另一個Spring Boot項目

將現有Spring Boot項目作為模塊導入到另一個Spring Boot項目的操作步驟如下&#xff1a;?項目結構調整?將待導入的項目文件夾復制到主項目的根目錄下修改子模塊目錄名保持命名規范&#xff08;如ms-xxx格式&#xff09;?父POM配置?在主項目的pom.xml中添加<modules>聲…

激光頻率梳 3D 輪廓測量 - 銑刀刀片的刀口鈍化值 R 的測量

一、引言銑刀刀片的刀口鈍化值 R 是影響切削性能的關鍵參數&#xff0c;其精度直接關系到工件表面質量與刀具壽命。傳統測量方法在面對微米級鈍化圓角時存在分辨率不足、接觸式測量易損傷刃口等問題。激光頻率梳 3D 輪廓測量技術憑借飛秒級時頻基準與亞微米級測量精度&#xff…