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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

STM32——GPIO(1)

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32——GPIO(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STM32——GPIO


宗旨:技術的學習是有限的,分享的精神是無限的。


【對單片機的操作就是控制IO口】

一、GPIO(通用輸入輸出口)

1、選定需要的引腳(對應哪一個IO口);

2、配置需要的功能(輸入還是輸出);

3、設置需要的高低電平;

?

二、GPIO寄存器

配置寄存器:輸入還是輸出

數據寄存器:保存輸入電平或將要輸出電平

位控制寄存器:控制電平的輸出

鎖定寄存器:設置某鎖定引腳后,不能修改配置

每4位控制一個引腳。寄存器都是32位的。

?

三、STM32地址映射

Cortex-M3 有 32 根地址線,所以它的尋址空間大小為 2^32 bit=4GB。 ARM 公司設計時,預先把這 4GB 的尋址空間大致地分配好了。地址從 0x4000 0000 至 0x5FFF FFFF( 512MB )的地址分配給片上外設。stm32f10x.h這個文件中重要的內容就是把STM32 的所有寄存器進行地址映射。

AHB總線:(0x4001 8000~0x4001 8000)

APB1總線:(0x4000 0000~0x4001 0000)I2C,UART,DAC,部分定時去等

APB2總線:(0x4001 0000~0x4001 3FFF)GPIO,串口1,ADC及部分定時器;

外設基地址:片上外設的首地址就是外設的基地址0x40000000。STM32 的地址是 32 位的。

總線基地址:總線基地址(AHB/APB1/APB2) = 外設基地址 + 偏移量

寄存器組基地址:寄存器組基地址(GPIOA~E) = 總線基地址 + 偏移量?

#define PERIPH_BASE ((uint32_t)0x40000000) /* 外設基地址 *//* 總線基地址 */ #define APB1PERIPH_BASE PERIPH_BASE #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) #define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)/*寄存器組基地址*/ #define GPIOA_BASE (APB2PERIPH_BASE + 0x0800) #define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) #define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) #define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) #define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) #define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) #define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) #define GPIOD ((GPIO_TypeDef *) GPIOD_BASE) #define GPIOE ((GPIO_TypeDef *) GPIOE_BASE)typedef struct {__IO uint32_t CRL;__IO uint32_t CRH;__IO uint32_t IDR;__IO uint32_t ODR;__IO uint32_t BSRR;__IO uint32_t BRR;__IO uint32_t LCKR; } GPIO_TypeDef; /* GPIO7個寄存器封裝,寄存器圖中有相對總線的地址偏移*/

總結

以上是生活随笔為你收集整理的STM32——GPIO(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

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