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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32按键矩阵代码_STM32 学习笔记---1

發布時間:2023/11/30 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32按键矩阵代码_STM32 学习笔记---1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

既然打算學,基礎的東西元件的得知道是什么,這樣寫代碼的時候才能知道自己在干什么!

ROM 和Flash 斷電后都能儲存數據,RAM則不能

其實閃存(flash)是ROM的一種它的全名---FLASH EEPROM

EEPROM---電可擦除可編程只讀存儲器

Flash

Flash是?種?易失性存儲器,即斷電之后數據也不會丟失,這個存儲器的特點是不能以字節的方式擦除信息,它按扇區(block)操作

32的芯片有些參數說 Flash的大小256k,64k,512k,它可以用于存儲代碼,也可以用于存儲數據。

我們編譯好的程序就放在這個地方。內核通過 ICode 總線來取里面的指令。 也存放常量 const修飾的

SRAM

靜態隨機存取存儲器(SRAM)是隨機存取存儲器的?種。所謂的“靜態”,是指這種 存儲器只要保持通電,??儲存的數據就可以恒常保持。

相對之下,動態隨機存取存儲器(DRAM)??所儲存的數據就需要周期性地更新

程序的變量,堆棧等的開銷都是基于內部的SRAM。內核通過DCode 總線來訪問它。

單片機中有FLASH為啥還需要EEROM?

原文:https://www.zhihu.com/question/379251731/answer/1080753769

flash可以一個字節一個字節寫,但是刪除的話,得一整個扇區刪除。
目前常見的flash一個扇區是4k的大小。如果你只要刪改一個哪怕一個字節的數據。都要先把flash的至少一個扇區的數據讀到ram里。然后修改。改好了后再把這個扇區的數據再存回去。如果只是小數據量的修改。則這樣一折騰,操作復雜。而且mega328才2k的RAM。存不下一個扇區的數據。所以內置了EEPROM,可以按字節刪改。


stm32 F10xxx系統結構,圖下面是每個名詞的介紹,結合著看

系統構架

● 四個驅動單元:

  • CortexTM-M3內核DCode總線(D-bus) 和 系統總線(S-bus)
  • 通用DMA1 和 通用DMA2
  • ● 四個被動單元

  • 內部SRAM
  • 內部閃存存儲器
  • FSMC
  • AHB到APB的橋(AHB2APBx),它連接所有的APB設備
  • 我們可以把驅動單元理解成是CPU 部分,被動單元都理解成外設。下面我們簡單介紹下驅動單元和被動單元的各個部件

    這些都是通過一個多級的AHB總線構架相互連接的,如下圖所示:

    從AHB 總線延伸出來的兩條 (APB1和APB2) 總線,上面掛載著STM32 各種各樣的特色外設。我們經常說的GPIO、串口、I2C、SPI 這些外設就掛載在這兩條總線上,這個是我們學習STM32 的重點,就是要學會編程這些外設去驅動外部的各種設備。


    部分參考:https://zhuanlan.zhihu.com/p/96126833

    ICode總線

    該總線將CortexTM-M3內核的指令總線與閃存指令接口相連接。指令預取在此總線上完成。

    ICode 中的I 表示Instruction,即指令。程序編譯之后生成的二進制文件都是一條條指令,燒錄后存放在FLASH中,內核要讀取這些指令來執行程序就必須通過ICode 總線,它幾乎每時每刻都需要被使用,它是專門用來取指的。

    由上圖也可看出ICode連接M3內核與Flash接口

    DCode總線

    該總線將CortexTM-M3內核的DCode總線與閃存存儲器的數據接口相連接(常量加載和調試訪

    問)。

    DCode 中的D 表示Data,即數據,那說明這條總線是用來取數的。我們在寫程序的時候,數據有常量和變量兩種,常量就是固定不變的,用C 語言中的const 關鍵字修飾,是放到內部的FLASH 當中的,變量是可變的,不管是全局變量還是局部變量都放在內部的SRAM。因為數據可以被Dcode 總線和DMA 總線訪問,所以為了避免訪問沖突,在取數的時候需要經過一個總線矩陣來仲裁,決定哪個總線在取數。

    系統總線

    此總線連接CortexTM-M3內核的系統總線(外設總線)到總線矩陣,總線矩陣協調著內核和DMA間

    的訪問。

    DMA總線

    此 總 線將 DMA 的AHB主 控 接口 與總 線 矩陣 相聯 , 總線 矩陣 協 調著 CPU 的 DCode 和 DMA 到SRAM、閃存和外設的訪問。

    總線矩陣

    總線矩陣協調內核系統總線和DMA主控總線之間的訪問仲裁,仲裁利用輪換算法。在互聯型產品中,總線矩陣包含5個驅動部件(CPU的DCode、系統總線、以太網DMA、DMA1總線和DMA2總線)和3個從部件(閃存存儲器接口(FLITF)、SRAM和AHB2APB橋)。在其它產品中總線矩陣包含4個驅動部件(CPU的DCode、系統總線、DMA1總線和DMA2總線)和4個被動部件(閃存存儲器接口(FLITF)、SRAM、FSMC和AHB2APB橋)。

    AHB外設通過總線矩陣與系統總線相連,允許DMA訪問。


    原文:https://blog.csdn.net/yu132563/article/details/53440590#commentBox

    首先,說點不靠譜的,APB和AHB總線,我個人感覺這個類似于個人PC系統里的北橋和南橋總線。
    南橋總線上掛接的都是鼠標、鍵盤這些慢速的設備,北橋上掛接顯卡等高速設備。南橋頻率低,北橋頻率高。另外,南橋最后也要接到北橋上。
    這些感覺都類似于APB和AHB。

    一定要看圖,對比著看!

    從AHB 總線延伸出來的兩條 (APB1和APB2) 總線,上面掛載著STM32 各種各樣的特色外設。我們經常說的GPIO、串口、I2C、SPI 這些外設就掛載在這兩條總線上,這個是我們學習STM32 的重點,就是要學會編程這些外設去驅動外部的各種設備。


    總結

    以上是生活随笔為你收集整理的stm32按键矩阵代码_STM32 学习笔记---1的全部內容,希望文章能夠幫你解決所遇到的問題。

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