娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月18日(星期二)

正在發生

2021年03月18日 | STM32中單獨設置GPIO端口高8位/低8位的方法

發布者:czm721002 來源: eefocus關鍵字:STM32  GPIO端口 手機看文章 掃描二維碼
隨時隨地手機看文章

stm32的IO端口都是16位的, 如果要單獨操作某高8位或低8位, 則不是那么簡單, 先看兩張BSRR/BRR寄存器的圖:

據官方數據手冊上面說, 這兩個寄存器用于專門對ODR進行原子操作的位操作, 都是在置1的時候對某位有影響.


舉例說下怎么對IO端口賦值:


1.對高8位/低8位/全部清零


很明顯, 這個只需要操作BRR寄存器即可:


對高8位清零:GPIOA->BRR = 0xFF00


對低8位清零:GPIOA->BRR = 0x00FF


全部清零: GPIOA->BRR = 0xFFFF 或 GPIOA->ODR = 0x0000


當然了, 使用下面2,3的兩個宏也可以完全該清零操作~ stm32固件庫是不是應該加上這兩個宏/函數?


2.對低8位置數


涉及到置數, 這個就是操作BSRR寄存器了


比如要使端口A的低8位為 0x55 (01010101B), 那么對于BSRR這個32位寄存器來說:


低16位應該置為 0000 0000 0101 0101, 這個就等于 0x55, 置1使某位為1, 置0的位不影響原來的值


高16位應該置為 0000 0000 1010 1010, 這個就等于 ~0x55(即取反)的結果, 置1使某位為0, 置0不影響原來的值


這樣, BSRR寄存器的值就是 0000 0000 1010 1010 0000 0000 0101 0101, 兩部分的高8位均為0, 所以不會影響到IO口的高8位


總結, 以下的宏實現對某端口的低8位置數, 不影響高8位:


#define GPIO_WriteLow(GPIOx,a)    GPIOx->BSRR=(((uint32_t)(uint8_t)~(a))<<16)|((uint32_t)(uint8_t)(a))

3.對高8位置數


這個和單獨對低8位置數其實是一樣的, 只是設置的位不一樣罷了


同樣, 要使高8位為0x55, 那么:


低16位應該置為 0101 0101 0000 0000


高16位應該置為 1010 1010 0000 0000, 同樣是取反的結果; 不影響低8位的數據


這樣, BSRR寄存器的值就是 1010 1010 0000 0000 0101 0101 0000 0000, 可以看出, 其實它就是上面那個結果左移8位


總結, 以下的宏實現對某端口的高8位置數, 不影響低8位:


#define GPIO_WriteHigh(GPIOx,a)    GPIOx->BSRR=(((uint8_t)(uint8_t)~(a))<<24)|(((uint32_t)(uint8_t)(a))<<8)

大家不用擔心效率問題, 上面那兩個宏最終的結果就是 GPIOx->BSRR=value 的形式, 所以擔心是多余的


關鍵字:STM32  GPIO端口 引用地址:STM32中單獨設置GPIO端口高8位/低8位的方法

上一篇:基于STM32和CPLD可編程邏輯器件的等精度測頻
下一篇:STM32-通用定時器基本定時功能

推薦閱讀

區塊鏈終于成為科技界的新寵,許多個人、企業、政府甚至秘密組織都在利用該技術進行各種各樣的嘗試。從2018年初開始,眾多科技熱潮趨勢報告和文章提出:區塊鏈、物聯網可能是下一個發展關鍵。而且,到2019年,在所有物聯網部署中近20%可能具有基礎的區塊鏈服務。為什么?到目前為止,物聯網面臨的最緊迫的挑戰是安全性(確保數據的隱私性、數據存儲的安全性)...
據國外媒體報道,全球領先的汽車制造商——韓國現代汽車集團宣布一項計劃,其將針對未來發布的車型推出新的“數字鑰匙”技術,該技術的應用使得用戶可以通過智能手機解鎖和啟動車輛。現代汽車在一份聲明中透露,其將在2019年內對甄選后的新車運用上述新技術。用戶可以在智能手機上下載APP作為“數字鑰匙”,每輛車可以對接最多4部授權手機。現代汽車的數字...
凌華科技發布其全新的設備狀態監測 (MCM,Machine Condition Monitoring)邊緣數據采集系統(DAQ,Data Acquisition Systems)MCM-204。MCM-204的發布不僅豐富了凌華科技的MCM產品線,而且還為大規模部署提供了高度優化的MCM解決方案。MCM-204采用ARM Cortex-A9處理器作為其計算動力,無需主機即可作為一款獨立的DAQ設備使用,提供兩個以太網端口,...
半導體晶圓前段測試設備廠商是德科技Keysight受缺芯影響,交付周期延長至6個月,但在供貨排序上,將優先供貨給公司的第一大客戶臺積電,以支撐臺積電5納米以下先進工藝的推進。臺灣是德科技的客戶除了臺積電之外,還包括聯電及京元電等晶圓代工和封測大廠。近幾年,是德科技發展迅猛,在5G的加速落地推進下,是德科技2020年在大中華區營收首度超越北美,這...

史海拾趣

問答坊 | AI 解惑

LM324N 怎樣到1000倍

LM324N 怎樣到1000倍? 我想用2個 324 只能放大到7倍,我市初學請教高手 謝謝請看圖…

查看全部問答∨

將EMI/EMC控制在搖籃之中

0 引 言 電子研發工程師最常采用的EMI/EMC防范措施不外乎是屏蔽、濾波、接地和布線,但是隨著電子系統的集成化,在考慮成本、質量、功能,又要兼顧產品推出速度的要求下,工程師們必須在設計初始階段就展開EMI/EMC預測分析和設計,避免在研發后 ...…

查看全部問答∨

一個設想

可以在一些大家感興趣的模塊,一直堅持的學習的活動,包括硬件,軟件的活動,類似大講堂,弄的專一點,比如就針對51系列的單片機,或者那一款dsp也行,從頭到位都有講解,學的人都可以到那個專區里面提問什么交流什么的,這樣目的性強一些,不知道 ...…

查看全部問答∨

TI模擬應用期刊第一季

本期精彩內容包括如下主題: 放大器 • 運算放大器的增益穩定性,第 1 部分:總體系統分析• 壓電傳感器的信號調節• 將運算放大器與高速 DAC 進行接口連接,第 3 部分:簡化 DAC 電流源電源管理 • 電池備份存儲系統的電量 ...…

查看全部問答∨

結構體成員傳遞問題

#include <stdio.h> #include <stdlib.h> #include <string.h> typedef unsigned char  uint8_t; typedef struct {   char chip;   unsigned int addr;   int addr_length;   ...…

查看全部問答∨

關于找不到time.h的問題

大家好, 我剛開始使用wince編程,現在總是問題不斷 今天遇到的問題是。我從platform builder中導出的 sdk 然后安裝 使用vs2008建立了一個win32的應用程序,我建立好以后沒有進行修改直接編譯 但是他報了很多錯誤,主要是因為我導出sdk的時候組 ...…

查看全部問答∨

uCOS操作系統的OS_Sched函數的問題

有誰幫忙解答一下OS_Sched函數的問題: 我的問題是:執了OS_TASK_SW();函數之后,它會不會返回調用點,接著調用OS_EXIT_CRITICAL();開中斷?我試著在OS_TASK_SW();函數后加調試信息發現它沒有執行調試信息,這樣子的話,由于前面已經調用了關中 ...…

查看全部問答∨

STM32F100,用I/O模擬方式可以驅動TFT屏嗎?

我在ST的研討會上得到一個小開發板,它上面的芯片是STM32F100,這個芯片沒有FSMC功能。我想用這個開發板做個MP3,用I/O方式控制TFT屏(這個芯片速度慢會不會有問題),SPI接口給解碼芯片送數據,另一個SIP接口從SD卡里面讀文件數據。這個方案 ...…

查看全部問答∨

DSP can在自測模式下通信

例程是TI的例程: #include "DSP280x_Device.h"     // DSP280x Headerfile Include File #include "DSP280x_Examples.h"   // DSP280x Examples Include File // Prototype statements for functions fo ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 潞西市| 右玉县| 麻阳| 涪陵区| 常山县| 威信县| 昭觉县| 安福县| 双鸭山市| 沙田区| 济宁市| 轮台县| 江安县| 苏尼特左旗| 海南省| 长子县| 民权县| 盐池县| 海盐县| 增城市| 渭源县| 陈巴尔虎旗| 崇文区| 广饶县| 资中县| 革吉县| 前郭尔| 康平县| 德庆县| 南江县| 杂多县| 巴彦县| 南城县| 准格尔旗| 福建省| 开封市| 遂平县| 松江区| 缙云县| 永定县| 海门市|