關于為什么stm32的開漏輸出可以讀取引腳的數值

在使用軟件模擬iic通信時,要將SDA線配置為開漏輸出,既然配置為開漏輸出,為什么程序還可以通過SDA線讀取數據?

查閱手冊:

只說了結論:在開樓模式下,對輸入數據寄存器的讀訪問可以得到IO狀態

來看輸出配置這個框圖結構:

我將其分為了A路 和? B路,A路和B路在IO引腳處有交點

在輸出模式下,若想要某位引腳為低電平,需要在B路上對輸出數據寄存器進行配置后經過輸出控制,將電平信號傳遞到IO引腳,由于A路和B路是相連的,在傳遞到IO引腳的同時,也會傳遞到A路上的輸入數據寄存器,這樣便解釋了為什么在輸出模式下我們依然可以讀取引腳。

實驗:

IDR :輸入寄存器

ODR:輸出寄存器

讀取函數:

uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

官網給的解釋:Reads the specified output data port bit. 讀取指定的輸出數據端口位。

可以理解為 獲取引腳的狀態,更適合本文的理解

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

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

相關文章

墨者:SQL手工注入漏洞測試(SQLite數據庫)

1. 墨者學院:SQL手工注入漏洞測試(SQLite數據庫)🚀 2. SQLite數據庫注入特點🔍 SQLite數據庫和MySQL數據庫語法不同,不能直接套用MySQL的注入方式。但SQLite有個特殊的數據庫sqlite_master,它存儲了所有表結構信息&…

【Apache Tomcat】

目錄Tomcat 基本簡介Tomcat 架構組成Tomcat 的目錄結構Tomcat 的工作原理Tomcat 的配置文件Tomcat 與其他服務器對比Tomcat 使用場景Tomcat 與 Spring Boot常見問題與優化Tomcat(全稱 Apache Tomcat)是由 Apache 軟件基金會開發和維護的一款 開源的 Web …

Nginx參數proxy_set_header 與 add_header 核心區別

proxy_set_header 與 add_header 是 Nginx 中兩個用于操作 HTTP 頭部信息的指令,但作用方向和使用場景完全不同。以下是兩者的核心區別:核心區別概述特性proxy_set_headeradd_header作用方向? 請求頭(Request Headers) → 后端服…

若依框架-前端二次開發快速入門簡述

1.目錄如左圖所示,主要分為bin,build,node_modules,public,src幾個部分,我們從gitee上使用bash將項目克隆到本地后,進入項目目錄,并安裝好依賴后可以直接使用命令啟動服務,具體命令見README.md,安裝好依賴后…

day 41 類和方法

day 28 類是對屬性和方法的封裝,可以理解為模版,通過對模型實例化可以實現調用這個類的屬性和方法。比如創建一個隨機森林類,然后就可以調用它的訓練和預測方法。 一個常見的類的定義包括了: 1、關鍵字class 2、類名 3、語法固定…

Docker學習日志-Docker容器配置、Nginx 配置與文件映射

Docker學習日志-Docker容器配置、Nginx 配置與文件映射 docker run 之后能否再次修改卷映射或端口映射? 不能直接修改已創建容器的卷映射或端口映射。 Docker 的設計原則是 **容器是不可變的 **,也就是說: 一旦容器通過 docker run 創建完成&…

cpp實現音頻重采樣8k->16k及16k->8k

static int convert_8khz_to_16khz(void* dst_buf, void* src_buf, int src_size) {short* in static_cast<short*>(src_buf);short* out static_cast<short*>(dst_buf);int in_samples src_size / sizeof(short);// 邊界處理&#xff1a;前兩個樣本out[0] in[…

【機器學習】機器學習新手入門概述

目錄 一、機器學習概念 1.1基本概念 1.2 主要類型 1.2.1 監督學習&#xff08;Supervised Learning&#xff09; &#xff08;1&#xff09;基本介紹 &#xff08;2&#xff09;任務目標 &#xff08;3&#xff09;常見算法 &#xff08;4&#xff09;應用場景 1.2.2 無…

嵌入式硬件篇---ESP32穩壓板

制作 ESP32 穩壓板的核心目標是&#xff1a;給 ESP32 提供穩定的 3.3V 電源&#xff08;ESP32 的工作電壓必須是 3.3V&#xff09;&#xff0c;同時支持多種供電方式&#xff08;比如鋰電池、USB、外接電源&#xff09;&#xff0c;并具備保護功能&#xff08;防止過流、接反電…

sql server 刪除用戶時提示:數據庫主體在該數據庫中擁有 架構,無法刪除

sql server 刪除用戶時提示&#xff1a;數據庫主體在該數據庫中擁有 架構&#xff0c;無法刪除&#xff0c;怎么辦&#xff1f; 1、刪除用戶ncdb2、 數據庫主體在該數據庫中擁有 架構&#xff0c;無法刪除。3、查看該用戶擁有的架構4、找到該用戶擁有的這個架構&#xff0c;右鍵…

分類-鳶尾花分類

目錄 基本步驟 決策樹&#xff08;分類&#xff09; 導入鳶尾花數據集 賦值給x與y 劃分數據集 導入決策樹模型 實例化 訓練 ?編輯 導入計算準確率的庫 計算準確率 隨機森林&#xff08;分類&#xff09; 導入鳶尾花的數據集&#xff0c; 賦值x&#xff0c;y 取后一…

單元測試、系統測試、集成測試知識詳解

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 一、單元測試的概念單元測試是對軟件基本組成單元進行的測試&#xff0c;如函數或一個類的方法。當然這里的基本單元不僅僅指的是一個函數或者方法&#xff0c;有可…

Python初學OpenCV:圖像預處理進階指南(二)

——實戰技巧與創新應用 > 圖像預處理是計算機視覺的"基石",掌握它等于獲得了讓機器"看懂世界"的魔法棒。 在上一篇教程中,我們學習了OpenCV的基礎預處理操作。本篇將帶你進入圖像預處理的進階世界,通過**實戰案例+創新應用**,教你如何組合多種技…

UML類圖--基于大話設計模式

類 一般矩形框代表類&#xff0c;類圖分為三層&#xff0c;第一層顯示類的名稱&#xff0c;如果是抽象類&#xff0c;則就用斜體顯示&#xff0c;如果是接口&#xff0c;則使用<<interface>>&#xff1b;第二層是類的特性&#xff0c;通常就是字段和屬性&#xff1…

數據結構 ArrayList與順序表

本節目標&#xff1a;了解線性表和順序表能夠實現簡單的順序表及其基本操作認識 ArrayList類并且知道如何去使用本篇文章正式進入數據結構&#xff01;進入之前&#xff0c;先了解一下什么是線性表和順序表。1.線性表與順序表線性表線性表&#xff08; linear list &#xff09…

佳維視工業顯示器在除塵與過濾設備中的應用

工業顯示器憑借高可靠性、防護性能、高顯示質量及多功能性&#xff0c;在除塵與過濾設備中扮演著關鍵角色&#xff0c;其應用貫穿設備監控、數據管理、故障診斷及遠程維護全流程&#xff0c;顯著提升了設備的運行效率、穩定性和智能化水平。以下是具體應用場景及優勢分析&#…

svn與git Merge重要區別講解

SVN有哪些merge方式 總的來說&#xff0c;SVN 的 merge 主要有以下 五種類型&#xff1a;1. 同步合并 (Sync Merge) / 追趕合并 (Catch-up Merge) 這是在分支開發過程中最常用的一種合并。目的&#xff1a;讓你的功能分支保持最新&#xff0c;及時獲取主干&#xff08;trunk&am…

Vue 3 入門教程5 - 生命周期鉤子

一、生命周期概述Vue 組件從創建到銷毀的整個過程稱為生命周期&#xff0c;在這個過程中&#xff0c;Vue 會自動觸發一系列的函數&#xff0c;這些函數被稱為生命周期鉤子。通過生命周期鉤子&#xff0c;我們可以在組件的不同階段執行特定的操作&#xff0c;例如初始化數據、發…

負載均衡Haproxy

簡介 HAProxy是一款高性能、開源的負載均衡器與反向代理服務器&#xff0c;主要用于 HTTP、TCP等協議的流量分發&#xff0c;廣泛應用于高并發、高可用的網絡架構中 HAProxy是法國威利塔羅&#xff08;Willy Tarreau&#xff09;使用C語言開發的一個開源軟件 企業版&#xff1a…

PostgreSQL鎖機制詳解:從并發控制到死鎖檢測

PostgreSQL鎖詳解 ————向逍xiangxiaohighgo.com 首先要講鎖的話&#xff0c;必須得先了解并發控制。數據庫中的對象都是共享的&#xff0c;如果同時間不同的用戶對同一個對象進行修改&#xff0c;就會出現數據不一致的情況。所以如果要實現并發訪問&#xff0c;就需要對這…