推薦閱讀最新更新時間:2025-04-16 21:48
針對STM32設計,這8種GPIO配置不可忽視
最近在看數(shù)據(jù)手冊的時候,發(fā)現(xiàn)在Cortex-M3里,對于GPIO的配置種類有8種之多: (1)GPIO_Mode_AIN 模擬輸入(2)GPIO_Mode_IN_FLOATING 浮空輸入(3)GPIO_Mode_IPD 下拉輸入(4)GPIO_Mode_IPU 上拉輸入(5)GPIO_Mode_Out_OD 開漏輸出(6)GPIO_Mode_Out_PP 推挽輸出(7)GPIO_Mode_AF_OD 復用開漏輸出(8)GPIO_Mode_AF_PP 復用推挽輸出 對于剛入門的新手,我想這幾個概念是必須得搞清楚的,平時接觸的最多的也就是推挽輸出、開漏輸出、上拉輸入這三種,但一直未曾對這些做過歸納。 因此,在這里做一個總結: 一
[單片機]
STM32單片機的原理詳解 STM32時鐘系統(tǒng)的配置方法
1.概述 時鐘 是單片機的脈搏,是單片機的驅動源,使用任何一個外設都必須打開相應的時鐘。這樣的好處是,如果不使用一個外設的時候,就把它的時鐘關掉,從而可以降低系統(tǒng)的功耗,達到節(jié)能,實現(xiàn)低功耗的效果。 每個時鐘 ti ck,系統(tǒng)都會處理一步數(shù)據(jù),這樣才能讓工作不出現(xiàn)紊亂。 2.原理 首先,任何外設都需要時鐘, 51單片機 , STM32 ,430等等,因為 寄存器 是由D觸發(fā)器組成的,往觸發(fā)器里面寫東西,前提條件是有時鐘輸入。 51單片機不需要配置時鐘,是因為一個時鐘開了之后所有的功能都可以用了,而這個時鐘是默認開啟的,比如有一個水庫,水庫有很多個門,這些門默認是開啟的,所以每個門都會出水,我們需要哪個門的水的時候可以直接用,
[單片機]
STM32 SRAM啟動的 KeiL 配置
簡介:BOOT 引腳改成從SRAM 啟動,即 BOOT0=1,BOOT1=1 如果使用ST提供的庫函數(shù) 3.5 打開(system_stm32f10x.c) #define VECT_TAB_SRAM 2.x 可以通過調用函數(shù)切換中斷向量表的指向。 2.x 可以通過調用以下兩個函數(shù)切換中斷向量表的指向。 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00); NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); KEIL 的配置 (SYM32F103C8T6 (64kFlash/20kSram);
[單片機]
關于STM32時鐘配置的那些坑
今天分享以下兩點內容: 1.為什么我們要先開啟STM32外設模塊時鐘; 2.關于STM32的 I/O 復用功能及什么時候開啟AFIO時鐘; 1為什么我們要先開啟STM32外設時鐘 講述本節(jié)內容之前先說一個案例: 前段時間,有一個朋友為配置EXTI的代碼折騰了一天,最終沒有結果。于是問了我這樣一個問題:“你用過STM32F051C8T6的外部中斷嗎,就是GPIO管腳做中斷,我這邊就是進不了中斷”。 然后他把基于標準外設庫、寄存器寫的代碼都給我發(fā)過來了。我仔細看了又看,沒發(fā)現(xiàn)有什么毛病啊。(但是,代碼是截圖分來給我發(fā)過來的)。 于是,我將之前配置IO外部中斷的代碼,按照他(PB2)的要求,寫成一個“EXT
[單片機]
STM32 GPIO的8種工作模式及相關配置寄存器
GPIO八種工作模式 四種輸入: GPIO_Mode_IPU(上拉輸入) GPIO_Mode_IPD(下拉輸入) 原理: 經(jīng)過上拉開關和下拉開關的連接,再經(jīng)過觸發(fā)器轉化為0,1的數(shù)字信號,存儲到數(shù)據(jù)寄存器中,然后我們就可以通過配置寄存器CRL,CRH控制這兩個開關。 用法: 若GPIO引腳配置為上拉輸入模式,在默認狀態(tài)下(GPIO引腳無輸入),取得的GPIO引腳數(shù)據(jù)為1,既高電平. 而下拉輸入模式則是相反的,在默認狀態(tài)下其引腳數(shù)據(jù)為0,低電平. GPIO_Mode_IN_FLOATING(浮空輸入) 原理: 不接上拉和下拉開關,直接經(jīng)由觸發(fā)器輸入. 用法: 若配置成這個模式可以用電表測量其引腳電壓是1點幾伏(不確定的值).由于輸
[單片機]
STM32 系統(tǒng)時鐘的配置
1.時鐘的驅動 有三種不同的時鐘源可被用來驅動系統(tǒng)時鐘: ● 內部高速 (HSI)8MHz RC 振蕩器時鐘 ● 外部高速 (HSE) 振蕩器時鐘 ● PLL 時鐘 2.系統(tǒng)時鐘的簡介 在STM32中,我們說要配置系統(tǒng)時鐘就是指的配置下圖標識紅色的部分“SYSCLK(系統(tǒng)時鐘)”.系統(tǒng)時鐘SYSCLK是同STM32中絕大部分期間工作的時鐘源,如下圖所示,系統(tǒng)時鐘可以為IIC, AHB,APB,DMA等配置時鐘。 3.系統(tǒng)時鐘的配置 例:如果在外部接入8MHZ的晶振,需要配置成48MHZ的系統(tǒng)時鐘。 分析:因為要使用8MHZ的外部時鐘,得到48MHZ的系統(tǒng)時鐘,則需要不分頻使其倍頻6倍得到系統(tǒng)時鐘,因而我準備配置的路線如 下圖所
[單片機]
STM32 外設中斷配置流程
以SPI為例: (至于那些結構體為什么這么配置,大家可以在STM32的官方資料以及相關學習書籍上找到,這里不再多說,只是針對流程進行簡單介紹) /***********SPI2配置函數(shù)***********/ void SPI_Config(void) { /*①聲明結構體*/ GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; SPI_InitTypeDef SPI_InitStructure; /*②使能外設時鐘*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE )
[單片機]
STM32外部中斷配置步驟
1.使能SYSCFG時鐘 系統(tǒng)配置時鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE) 2.初始化IO口為輸入 GPIO_INIT 3.設置IO口與中斷線之間的關系 所謂IO口與中短線 f4中有16個IO中斷線,PXn 連接的是 EXITn的中斷線 比如現(xiàn)在我要想把 PF9的中斷線進行連接,只可以連接EXIT9這個中斷 使用函數(shù)SYSYCFG_EXTLineConfig() 4.初始化線上中斷,設置觸發(fā)條件(上升沿還是下降沿,是事件還是中斷,關于事件和模中斷直接的差別請參考我轉載的另一篇博客,事件是中斷的一個起源) EXTI_Init() 5.配置中斷分組,并且使能中斷 N
[單片機]