日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

STM32系列--初识寄存器1

發布時間:2025/4/5 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32系列--初识寄存器1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 如何識別芯片
  • 芯片里面構成
  • 什么是存儲器映射
  • 寄存器
  • 使用結構體來封裝寄存器列表
  • 補充復習C語言
    • 指針
    • 結構體
    • 結構體指針

如何識別芯片

芯片四周是引腳,左下角的小圓點表示1腳,然后從1腳起按照逆時針的順序排列,如果沒有小圓點,則代表從左邊最上方逆時針開始計數

芯片里面構成

如下圖所示:

總線矩陣:
總線之間交叉的時候如果有個圓圈則表示可以通信,沒有圓圈則表示不可以通信

內核與外設之間要同通信要通過I\S\D總線。需要總線矩陣來沖裁I/S/D沖突的情況。
下面我總結一下STM32里面包含了什么,首先是內核用于控制片上外設,這個內核是ARM公司開發的,而ST設計的是片上外設,外設要與ARM內核通信,需要通過總線,即總線矩陣。

什么是存儲器映射

存儲器本身不具有地址信息,它的地址是由芯片廠商,給存儲器分配地址的過程就稱為存儲器映射。
給存儲器分配地址的過程叫存儲器映射,再分配一個地址叫重映射。

通過絕對地址發訪問內存單元:


ox40021 c14在我們看來是GPIOH端口ODR的地址,但是在編譯器看來這只是一個普通的變量,想讓編譯器也認識為是一個指針,我們得進行強制類型轉換,把它轉換成指針。(unsigned int *)0x40021c14 ,然后在對這個指針進行 * 操作。

下面,我來睡一下,(unsigned int *)(0x40021c14)代表將0x40021c14轉換為一個指針(也就是一個地址),再取 * 就代表給此地址賦值

寄存器

給有特定功能的內存單元取一個別名,這個別名就是我們經常說的寄存器,這個給已經分配好地址的有特定功能的內存單元取別名的就叫做寄存器映射。

下面來深入的講解一下STM32的寄存器映射
如果一個一個去找外設寄存器的地址,那么將會是非常麻煩,我們可以有一個非常簡單的方法,我們可以先確定每一條總線的地址,然后,在總線的地址上找到外設的地址。
首選取找總線的地址:

這個可以從芯片手冊上查看。



上面查看的是STM32F76xxx

使用結構體來封裝寄存器列表




補充復習C語言

指針

在C語言中,允許一個變量來存放指針,這種變量稱為指針變量,指針變量的值就是某份數據的地址。

在定義指針變量p_a的同時對它進行初始化,并將變量a的地址賦予它。通過&來獲取a的地址。
通過指針變量來取得數據:

運行結果都為15



總的來講,我們只需要知道&是代表獲取地址,*代表獲取數據

結構體

結構體就是一種自定義的數據類型,相當于是一種聚合類型。

如上圖所示,代表了2個結構體,stu1和stu2

結構體指針



獲取結構體成員



總結

以上是生活随笔為你收集整理的STM32系列--初识寄存器1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。