秉火429筆記之七位帶操作

2021-09-20 04:16:11 字數 807 閱讀 8929

目錄

位帶概況

位操作,簡單的理解,可以單獨的對乙個位元位讀和寫,51微控制器非常常見。類如,51微控制器通過關鍵字sbit來實現位定義,stm32並沒有這個關鍵字,而是通過訪問位帶別名區(bit band alias)來實現的。

m4中2個區域實現了位帶,其一為sram的最低1mb空間,其二為外設區域的最低1mb空間。

參考3.7 bit-banding 可知,位帶區的乙個位元經過膨脹後,雖然變大到4個位元組,但是還是lsb才有效。有人會問這不是浪費空間嗎,要知道f429的系統匯流排是32位的,按照4個位元組訪問的時候是最快的,所以膨脹成4個位元組來訪問是最高效的。通過指標的形式訪問位帶別名區位址從而達到操作位帶區位元位的效果。

// 把「位帶位址+位序號」轉換成別名位址的巨集

#define bitband(addr, bitnum) ((addr & 0xf0000000)+0x02000000+((addr & 0x000fffff)<<5)+(bitnum<<2))

// 把乙個位址轉換成乙個指標

#define mem_addr(addr) *((volatile unsigned long *)(addr))

// 把位帶別名區位址轉換成指標

#define bit_addr(addr, bitnum) mem_addr(bitband(addr, bitnum))

秉火429筆記之十一 Systick 滴答定時器

目錄 1.概述 2.暫存器說明 3.程式設計要點 4.例項 systick 系統定時器是屬於cm4核心中的乙個外設,內嵌在nvic中。系統定時器是乙個24bit的向下遞減的計數器。所有基於cm4核心的微控制器都具有這個系統定時器,使得軟體在cm4微控制器中可以很容易的移植。系統定時器一般用於作業系統...

秉火429筆記之十 EXTI 外部中斷 事件

目錄 1.exti 簡介 2.exti 功能框圖 3.功能點 4.編碼要點 外部中斷 事件控制器 exti 管理了控制器的23個中斷 事件線。每個中斷 事件線都對應有乙個邊沿檢測器,可以實現輸入訊號的上公升沿檢測和下降沿的檢測。exti可以實現對每個中斷 事件線進行單獨配置,可以單獨配置為中斷或者事...

秉火429筆記之十三 通訊基本概念

目錄 1.串列埠通訊與並口通訊 2.全雙工 半雙工及單工通訊 3.同步通訊與非同步通訊 4.通訊速率 按資料傳送的方式,通訊可分為序列通訊與並行通訊,序列通訊是指裝置之間通過少量資料訊號線 一般是8根以下 地線以及控制訊號線,按資料位形式一位一位地傳輸資料的通訊方式。而並行通訊一般是指使用8 16 ...