男人的天堂AV亚洲一区2区|精品乱码久久久久久久一|国产成人综合久久精品推不卡|99国产精品99久久|国产精品亚洲v三区防屏蔽|a级黄色大片在线观看视频男男|在线播放视频国产区中文|国产三级激情在线视频

JNH官网

【ArmDS】中Cortex-M處理器的GPIO初始化代碼的分析

一、文檔背景

在ARM Cortex-M處理器中,GPIO(通用輸入輸出)初始化代碼對于嵌入式系統的開發具有重要的指導意義。GPIO是嵌入式系統中最常用的外設之一,幾乎所有的外設控制都涉及到GPIO的操作。理解和正確實現GPIO的初始化代碼,可以幫助開發者快速上手硬件編程,提高開發效率并減少錯誤。


二、 解決的問題或者進行問題分析

● 使能GPIO外設時鐘:在進行任何GPIO操作之前,首先需要使能對應GPIO端口的時鐘。不同的微控制器系列有不同的方法來實現這一點,但通常是在RCC(時鐘控制寄存器)中設置相應的位。

● 配置GPIO引腳的模式:每個GPIO引腳可以配置為不同的模式,例如輸入模式、輸出模式、復用功能模式(用于外設)、模擬模式。這個配置通常通過GPIO端口的模式寄存器(如GPIOx_MODER)來完成。

● 配置GPIO引腳的輸出類型:如果引腳配置為輸出模式,還需要設置引腳的輸出類型,例如推挽輸出或開漏輸出。這個配置通過GPIOx_OTYPER寄存器來實現。

● 配置GPIO引腳的速度:不同的應用可能對GPIO引腳的速度有不同的要求,可以通過GPIOx_OSPEEDR寄存器來設置引腳的速度。

● 配置GPIO引腳的上拉/下拉電阻:為了避免引腳在未連接時浮空,可以配置內部的上拉或下拉電阻。這個配置通過GPIOx_PUPDR寄存器來實現。

● 配置GPIO引腳的復用功能:如果引腳被配置為復用功能模式,則需要通過AFR寄存器(GPIOx_AFRL和GPIOx_AFRH)來選擇具體的外設功能。


三、 如何在ArmDS中實現STM32F769開發板上LED燈的控制

1. STM32F769開發板上LED燈的原理圖如圖3-1所示:


圖3-1

2. 宏定義 #define __setbit(___reg, ___bit) ((___reg) |= (1U << (___bit))) 是一種便捷的方法,用于在寄存器中設置特定位(bit)為1。這個宏定義在嵌入式系統開發中非常常見,因為它能夠簡化和標準化寄存器操作。


3. 使能GPIOI與GPIOJ的時鐘:“__setbit(RCC->AHB1ENR, 8); __setbit(RCC->AHB1ENR, 9);”這樣設置的依據如圖3-2所示:


圖3-2

4. 配置GPIOI_15引腳的模式為輸出模式:“__setbit(GPIOI->MODER, 30);__clearbit(GPIOI->MODER, 31);”,設置的依據如圖3-3所示:


圖3-3


5. 配置GPIOI_15引腳的輸出類型為Push-Pull:“__clearbit(GPIOI->OTYPER, 15);”設置的依據如圖3-4所示:

圖3-4

6. 配置GPIOI_15引腳的速度為中速:“__setbit(GPIOI->OSPEEDR, 30);__clearbit(GPIOI->OSPEEDR, 31);”,設置的依據如圖3-5所示:

圖3-5

7. 配置GPIOI_15引腳為上拉電阻:“__setbit(GPIOI->PUPDR, 30);__clearbit(GPIOI->PUPDR, 31);”設置的依據如圖3-6所示:

圖3-6

四、驗證STM32F769開發板上LED燈的控制

1. 創建一個點亮LED的函數:LED_On,代碼如圖4-1所示:


圖4-1


2. 點亮LED的函數中代碼設置的依據,如圖4-2


圖4-2

3. 再創建一個關閉LED的函數:LED_Off。

4. 在ArmDS創建一個最基本的工程,通過CMSIS類型,只添加Startup文件與Core組件。

5. 在工程中創建main.c文件,在main.c中添加GPIOI_15引腳的初始化代碼,與LED_On與LED_Off函數,編譯工程,下載到開發板上后,查看開發板上LED燈的情況。


五、討論分析

1. GPIO引腳的復用功能如何設置?

解決方法:

(1)、先查看復用功能寄存器的功能Map表,找到需設置的引腳數,確認復用功能,如圖5-1所示:

圖5-1

(2)、 查看復用功能寄存器,根據確認的復用功能,設置對應的值,如圖5-2所示:



圖5-2

六、結論

通過分析GPIO初始化代碼,開發者可以更好地理解微控制器的硬件抽象層次(HAL),包括如何直接訪問寄存器進行外設控制。

熟悉不同微控制器系列的GPIO初始化代碼,有助于開發者在不同平臺間進行代碼移植時,更加游刃有余。

jnh官網 jnh官網 jnh官網 jnh官網 金年會 金年會 金年會 金年會